| 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 10:07 |
||
|
|
Svara med citat
|
|
|
#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 med citat
|
| Svara |
|
|