- crea una variabile _self come ti ha suggerito rsdpzed
- Utilizza quella invece di this (perché "this" può cambiare in base al contesto)
- non passare la funzione _self.sit ad un metodo jQuery perché jQuery ne cambia il contesto.
codice:function Table(n){ var _self = this; // soluzione this.number=n; this.user=Array(); this.button=$("#table_1").find(".sitdown"); this.button.bind("click",function(e) {_self.sit()}); // <----- non chiamare direttamente la funzione this.li.each(function(index, element) { _self.user.push($(element).text()); primo problema }); } Table.prototype.sit = function(){ // do something }
La soluzione proposta da mxa credo sia anche valida, ma la funzione "bind" (nativa) non è supportata da Internet Explorer 8 e inferiori. Quindi dipende dal tuo target (potresti anche trovare una patch per IE e usare il metodo di mxa)
![]()

Rispondi quotando