当我尝试将事件数据传递给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