當我嘗試將事件數據傳遞給jQuery live函數時,遇到了一個問題。基本上,我有一個由多行生成的表,每行數據都由一個對象封裝,我們只需調用「tbRow」即可。我想在每一行註冊一個實時函數,當你點擊它時,它將根據行數據的不同而行動。我構建代碼的方式如下:將事件數據傳遞給jQuery live處理程序
MYAPP.prototype.actions = function (tbRow) {
var output = "<div class="select"><a href="#"> Select this row </a></div>"
$('div.select').live('click', {tbRow: tbRow}, function() {
console.log(e.data.tbRow.id + "is selected");
/// do something else
});
return output;
};
此函數返回的輸出被用於構建實際的表,並在同一時間,現場函數註冊該行向響應點擊操作。 id的打印(假設每行都有一個唯一的ID)僅用於檢查我選擇的是正確的行。
我遇到的問題是,我選擇的每一行現在都帶有第一行的ID,它只會顯示第一個正確註冊的ID。我能想到的一種方式來解決它,使一個連接字符串,用行ID,使得:
$('div.select_RowID1").live(....)
但是,我不知道這是否會工作或正確的方法。
在此先感謝您的幫助。
奧利弗
@Bob,類似於我上面的評論。索引不是我想要在實時功能中訪問的唯一參數。行對象是從服務器端一個接一個傳下來的,我沒有一個可以基於索引訪問的數組。 thx – Oliver 2011-02-11 20:50:46