FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Medlem
|
Hej, jag har fastnat lite i en sak. Jag skapar oftast javascript-objekt som i sig själv hanterar det som är relevant för en sida. T.ex har jag en lista med länkar, men som jag vill ska gå igenom javascript-objektet.
Exempel: Kod:
<script> $(function() { var baseUrl = "x"; var linkHandler = { init: function() { this.linkButton = $('.linkButton'); this.bindEvents(); }, bindEvents: function() { this.linkButton.on("click", $.proxy(this.goTo, this)); }, goTo: function(event) { // Här är event.data() undefined..., så även this.data() osv osv console.log(event.data()); } } linkHandler.init(); }); </script> Kod:
<a href="#" class="linkButton" data-id="blah" data-id2="blah">test</a> <a href="#" class="linkButton" data-id="blah2" data-id2="blah2">test2</a> <a href="#" class="linkButton" data-id="blah3" data-id2="blah3">test3</a> Problem jag har är att få ut data-xxx värdet inuti goTo funktionen i objektet. Det ger idag undefined... Kör jag utan proxy och istället kör en anonym funktion: Kod:
this.linkButton.on("click", function() { console.log($(this).data()); }); Jag vill dock fortsätta använda proxy för att få lite bättre struktur i javascript-objektet. Hur gör jag för att i goTo-funktionen få ut data-taggarnas värde? Senast redigerad av Johnny Viking den 2014-12-23 klockan 09:07 |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
this i $.proxy(this.goTo, this) refererar till objektet linkHandler. Du får nog ändra till följande för att this.data() inte ska vara undefined.
Kod:
this.linkButton.on("click", function(e) { $.proxy(linkHandler.goTo, this, e)}); |
||
![]() |
![]() |
Svara |
|
|