2016-09-27 3 views
0

Ich versuche, eine Funktion innerhalb eines jquery-Plugins aufzurufen.JQuery - Zugriff auf Funktionen innerhalb des Plugins?

Der Beispielcode ist:

$("#table-2").tableDnD({ 
    onDragClass: "myDragClass", 

    onDrop: function(table, row) { 
     var rows = table.tBodies[0].rows; 
     var debugStr = "Row dropped was "+row.id+". New order: "; 
     for (var i=0; i<rows.length; i++) { 
      debugStr += rows[i].id+" "; 
     } 
     $(#debugArea).html(debugStr); 
    }, 

    onDragStart: function(table, row) { 
     $(#debugArea).html("Started dragging row "+row.id); 
    } 
}); 

Die Definition von onDrop http://isocra.com/2008/02/table-drag-and-drop-jquery-plugin/ genommen ist

onDrop

eine Funktion übergeben, die aufgerufen wird, wenn die Zeile gelöscht wird. Die Funktion benötigt 2 Parameter: die Tabelle und die Zeile, die gelöscht wurde. Sie können die neue Reihenfolge der Zeilen ermitteln, indem Sie table.tBodies [0] .rows verwenden.

Ist es möglich, eine Funktion zu übergeben? zB:

onDrop: doWork(table, row), 

Wo doWork ist:

function doWork (table, row) { 
    var row_id = $(row).prop('id'); 
} 

Der Fehler ist erhalten ist: Uncaught ReferenceError: table is not defined(…) die mit der Leitung bezieht ich für doDrop hinzugefügt.

Wer weiß sowieso, um dies zu tun? Danke.

Antwort

1

Wenn Sie

onDrop: doWork(table, row), 

schreiben Sie sind die Funktion doWork mit diesen Parametern aufrufen. Da table nicht existiert, wird der Fehler ausgegeben.

Der richtige Weg zu tun, was Sie versuchen, ist

onDrop: doWork, 

diese Weise können Sie die Funktion, die Sie anrufen möchten, setzen.

+0

Dank, die genau zu funktionieren scheint, wie ich – MacMan

0

Versuch:

onDrop: function(table, row) { 
     doWork(table, row) 
    } 
+1

brauchen Obwohl dieser Code das Problem lösen helfen kann, es nicht erklären, _why_ und/oder _how_ es die Frage beantwortet. Die Bereitstellung dieses zusätzlichen Kontextes würde seinen langfristigen Bildungswert erheblich verbessern. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen, einschließlich der Einschränkungen und Annahmen. –

Verwandte Themen