Kom ihåg mig?
Home Menu

Menu


Javascript proxy fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2014-12-23, 09:05 #1
Johnny Viking Johnny Viking är inte uppkopplad
Medlem
 
Reg.datum: Aug 2011
Inlägg: 273
Johnny Viking Johnny Viking är inte uppkopplad
Medlem
 
Reg.datum: Aug 2011
Inlägg: 273
Standard Javascript proxy fråga

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>
Länkexempel
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>
Länkarna i fråga har data-taggar med relevanta värden som ska användas för att komponera ihop den slutga URL:en.

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()); });
Ja då finns data-taggarnas värden med.

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
Johnny Viking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-12-27, 14:23 #2
H S Consulting H S Consulting är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2013
Inlägg: 29
H S Consulting H S Consulting är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2013
Inlägg: 29
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)});
H S Consulting är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017