Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脚本不适用于加载的元素_Javascript_Jquery_Ajax_Checkbox - Fatal编程技术网

Javascript 脚本不适用于加载的元素

Javascript 脚本不适用于加载的元素,javascript,jquery,ajax,checkbox,Javascript,Jquery,Ajax,Checkbox,我创建了一个带有复选框+包装的表单,即: <form> <div class="input-wrapper"> <input type="checkbox" name="item[]" value="1"> </dv> <div class="input-wrapper"> <input type="checkbox" name="item[]" value="2"> </div

我创建了一个带有复选框+包装的表单,即:

<form>
  <div class="input-wrapper">
      <input type="checkbox" name="item[]" value="1">
  </dv>
  <div class="input-wrapper">
      <input type="checkbox" name="item[]" value="2">
  </div>
  <div class="input-wrapper">
      <input type="checkbox" name="item[]" value="3">
  </div>
</form>
但当我从ajax加载其他复选框时,即:

$.post(
     '/my/url',
     {...my data...},
      function(data){
           if(data != 'failed'){
               //return new checkbox + wrapper too and append it at the end of the form
                $('form').append(data);
           }
      }
 );
切换检查不仅仅适用于加载/附加的元素

如何解决这个问题如何正确创建影响所有元素(即使是加载的元素)的脚本?


谢谢。

试试这个小小的修改:

$("form").on("click", ".input-wrapper", function () { 
    var $checkbox = $(this).find(':checkbox');
    $checkbox.prop('checked', !$checkbox[0].checked);
});

让我知道进展如何。

试试这个小小的修改:

$("form").on("click", ".input-wrapper", function () { 
    var $checkbox = $(this).find(':checkbox');
    $checkbox.prop('checked', !$checkbox[0].checked);
});

让我知道它是如何进行的。

您绑定单击侦听器的方式将绑定到DOM中当前的所有
.input wrapper
元素


您可以分别为单击绑定新对象,或者将侦听器委托给将留在DOM中的父对象(例如,
$(文档)。在(“click”,“.input wrapper”,function(){//Do Stuff});

绑定单击侦听器的方式将绑定到DOM中当前的所有
。input wrapper
元素


您可以分别为单击绑定新的侦听器,或者将侦听器委托给将留在DOM中的父对象(例如,
$(文档)。在(“click”、“.input wrapper”,function(){//Do Stuff});

检查:检查:非常感谢您的解释。非常感谢您的解释。