jQuery this innerhalb jeder Schleife
Innerhalb der initialize()
Funktion es ist ein jQuery - each
Schleife. Innerhalb dieser Schleife ist eine Referenz auf this.dbcolumns
dem ist offensichtlich nicht so funktioniert, wie jQuery zugewiesen this
um den aktuellen Schleifen-element. Also, wie kann ich mich auf this.dbcolumns
aus dem inneren der Schleife? Es funktioniert außerhalb der Schleife ok.
function datatable() {
this.url = '';
this.htmltable = '';
this.dbtable = '';
this.dbcolumns = new Array();
this.idfield = 'id';
this.pageno = 0;
this.pagesize = 15;
this.totalpages = 0;
this.totalrecords = 0;
this.searchterm = '';
this.initialize = function() {
this.dbtable = $(this.htmltable).attr('data-table');
this.dbcolumns.push(this.idfield);
$(this.htmltable + ' th[data-field]').each(function(i, col){
this.dbcolumns.push( $(col).attr('data-field') ); /* <<<<<<<<<< this line */
});
return this;
}
}
var that =this
dann verwendenthat
...- Anmerkung: die Funktion-Ausdrücke sollten ein abschließendes Semikolon.
- Dank pimvdb. tun wird 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
stellen Sie einen Verweis auf "diese", dass Sie möchten, um auf zu halten außerhalb der Schleife.
dann kann man mit "selbst" innerhalb der Schleife.
Speichern eines Verweises auf
this
außerhalb dereach
Rückruf, oder verwenden Sie die ES5bind
Methode:Oder, wie bereits in den Kommentaren verwenden
$.proxy
:$.proxy
weil.bind
wird nicht überall unterstützt.bind
für Sie), so halte ich die Vermischung der jQuery-Muster-und Prototyp-Muster.Den gängigen JS-Muster zu lösen, ist die Verwendung Verschluss: