我如何正确使用jquery delegate()来toggleclass?

时间:2010-12-25 14:34:56

标签: jquery delegates checkbox toggleclass

我是jquery的新手,所以请原谅我的误解。 我使用这段代码:

$(".redbox").delegate("input[type=checkbox]", "change", function(){
   var index = this.id.substring(8);
   $(".inputfield" + index).toggleClass("complete");
     });

在输入文本字段的输入上切换类。 起初这个代码工作得很好,但是因为我用jquery附加了整个代码, delegate()使所有复选框和输入字段切换。

您可以在此代码中看到我的意思:http://jsfiddle.net/eD5M5/

点击我--->附加追加按钮 追加按钮---->附加复选框和输入字段(+删除按钮)

当切换类看起来很好的时候点击追加! 但是当你多次点击并开始切换时,一切都会切换!

我的问题是;

我做错了什么,我该如何解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:1)

他们都被赋予同一个班级,而你是按班级选择的,所以它会对他们产生影响。

不要按类选择,只需使用.next()从复选框遍历到文本字段。

示例: http://jsfiddle.net/eD5M5/3/

$(this).next().toggleClass("complete");

答案 1 :(得分:1)

这是因为您没有递增计数器,因此所有输入都具有相同的类:check the fix