$(document).on()仅适用于一个动态元素,我该如何解决这个问题?

时间:2013-09-13 13:34:44

标签: javascript jquery dom

这是我在Stack上的第一个问题,尽管我多年来一直是粉丝。请耐心等待,我希望我的问题很明确。

我正在使用此代码:

$(document).on("click", "#checkbox img", function () {
   // object
   var checkbox = $(this).next("input[type=checkbox]");
   // check if checked
   if(checkbox.is(":checked")) {
       checkbox.prop("checked", false); this.src = "http://imgs.airwalk-design.com/layout/chckno.png";
   } else {
       checkbox.prop("checked", true); this.src = "http://imgs.airwalk-design.com/layout/chckyes.png";
   }
});

哪个很可爱。但是,如果用户关闭表单(它滑出,从DOM中删除),并打开另一个(ajax,插入DOM),则复选框不适用于该表单。但是,我可以重新打开第一个表单,复选框也适用于那个表单,即使它已被删除并再次附加。

有什么建议吗?

修改

MackieeE的回答/评论对我有用。我改为使用“#uniqueformid #checkbox img”。

1 个答案:

答案 0 :(得分:1)

#checkbox

是一个id,因此只能出现一次,这可能是插入第二个表单时无效的原因。请尝试使用课程。