我如何正确使用 jquery delegate() 来切换类?
我是jquery的新手,所以请原谅我的误解。 我使用此代码:
$(".redbox").delegate("input[type=checkbox]", "change", function(){
var index = this.id.substring(8);
$(".inputfield" + index).toggleClass("complete");
});
在输入文本字段的输入上切换类。 起初这段代码工作得很好,但由于我用 jquery 附加了整个内容, delegate() 使所有复选框和输入字段切换。
你可以在这段代码中明白我的意思: http://jsfiddle.net/eD5M5/
点击我 -- ->追加追加按钮 追加按钮----> 会追加复选框和输入字段(+删除按钮)
一旦切换类看起来不错,当您单击追加时, ! 但是当您单击多次并开始切换时,所有内容都会切换!
我问你的问题是;
我做错了什么,我该如何解决这个问题?
提前致谢
i'm new to jquery, so forgive me my misunderstandings.
i use this code:
$(".redbox").delegate("input[type=checkbox]", "change", function(){
var index = this.id.substring(8);
$(".inputfield" + index).toggleClass("complete");
});
to toggle a class on the input of a input textfield.
At first this code worked fine, but since i append the whole thing with jquery,
delegate() makes all checkboxes and inputfields toggle.
you can see what i mean in this code: http://jsfiddle.net/eD5M5/
click me ---> appends the append button
append button ----> appends checkbox and input field (+remove button)
when you click append once the toggle class seem to look fine!
but when you click more than once and start to toggle, everything toggles!
My question to you is;
What am i doing wrong, and how can i fix this?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
他们都被分配到相同的班级,并且您按班级选择他们,因此这会影响他们所有人。
无需按类选择,只需使用
.next()
从复选框遍历到文本字段。示例: http://jsfiddle.net/eD5M5/3/
They all are given the same class, and you're selecting them by class, so it will affect them all.
Instead of selecting by class, just use
.next()
to traverse from the checkbox to the text field.Example: http://jsfiddle.net/eD5M5/3/
这是因为您没有增加计数器,因此所有输入都具有相同的类:检查修复< /a>
This is because you are not incrementing the counter, so all inputs have the same class: check the fix