2016-09-27 67 views
0

我想從一個jQuery插件中調用一個函數。JQuery - 插件中的訪問函數?

的示例代碼:

$("#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); 
    } 
}); 

http://isocra.com/2008/02/table-drag-and-drop-jquery-plugin/採取onDrop的定義是

onDrop

傳遞一個時,該行被丟棄將被調用的函數。該函數需要2個參數:表格和被刪除的行。您可以使用 table.tBody [0] .rows來計算行的新訂單。

是否可以將一個函數傳遞給它? 如:

onDrop: doWork(table, row), 

其中的doWork是:

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

的錯誤是得到的是: Uncaught ReferenceError: table is not defined(…)它涉及到我添加doDrop行。

無論如何,任何人都知道這樣做? 謝謝。

回答

1

當你寫

onDrop: doWork(table, row), 

您是調用功能doWork這些參數。由於table不存在,它會引發錯誤。

正確的方法做你正在嘗試的是

onDrop: doWork, 

這樣你設置要調用的函數。

+0

感謝,似乎工作完全因爲我需要 – MacMan

0

嘗試:

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

儘管此代碼可以幫助解決這個問題,它不能解釋_why_和/或_how_它回答了這個問題。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –