当我尝试使用jQuery .toChecklist插件在选择列表上使用.change()事件时,遇到问题。挂钩jQuery .toChecklist上的change()事件
我的页面包含一些选择列表,使用jQuery将其更改为CheckLists。
考虑以下JavaScript代码段:
for (var i=0;i<5;i++)
{
var selectListId = 'selectList' + i;
// Assume this line represents the outputting on a
// standard select list
// Convert to Checklist
$("#" + selectListId).toChecklist();
$("#" + selectListId).change
(
function()
{
alert("SelectListId: " + selectListId);
}
);
}
这个循环的每次迭代中,我输出多选列表,将其转换成清单,然后添加.change()处理。然而,当页面呈现(视觉上,一切都很好)时,从任何列表中选择一个选项给出“SelectListId:selectList4”的警报文本(即循环的最后一个列表ID)。因此,似乎每次调用.change()将全局替换更改处理程序。
有谁知道如何更改代码,以便每个清单都有自己的更改处理程序(以便第一个更改处理程序将输出“SelectListId:selectList0”等)。
谢谢,
这是行不通的,并且在大多数情况下会是一个很好的方法,所以我将它标记为接受的答案,但是在这个实例中我的示例代码片段的简单性已经对我起作用了,我不能在循环之外工作(因为我不知道我有多少清单以及他们的Id是什么,因为还有其他的控制输出)。 :) – Crollster 2011-06-01 01:30:43