Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 jQuery在加载其他内容后不工作_Javascript_Jquery_Document Ready - Fatal编程技术网

Javascript jQuery在加载其他内容后不工作

Javascript jQuery在加载其他内容后不工作,javascript,jquery,document-ready,Javascript,Jquery,Document Ready,我对javascript非常陌生,但我正在我的网站上使用它。上周我发现了一个脚本,它通过jQuery将其他内容加载到我的页面。一切都很好,直到我注意到我的其他脚本因此停止工作。例如,我有一个绑定复选框的脚本: <script> $(document).ready( function() { $('.class_of_checkbox').click( function() { if(this.checke

我对javascript非常陌生,但我正在我的网站上使用它。上周我发现了一个脚本,它通过jQuery将其他内容加载到我的页面。一切都很好,直到我注意到我的其他脚本因此停止工作。例如,我有一个绑定复选框的脚本:

<script>
$(document).ready(
    function() {
        $('.class_of_checkbox').click(
            function() {
                if(this.checked == true) {
                    $(".class_of other_checkbox").attr('checked', this.checked);
                }
            }
        );
    }
);
</script>

$(文件)。准备好了吗(
函数(){
$(“.class\u of\u复选框”)。单击(
函数(){
if(this.checked==true){
$(“.class\u of other\u checkbox”).attr('checked',this.checked);
}
}
);
}
);

它是内联代码。我已经了解到这可能是由函数ready()引起的,该函数仅在加载DOM时触发,但我不确定如何解决此问题。

使用$.ajaxComplete在ajax调用完成时重新绑定您的操作


使用ajax加载的动态元素需要委派事件处理程序:

$(document).ready(function() {
    $(document).on('change', '.class_of_checkbox', function() {
        if (this.checked) 
          $(".class_of other_checkbox").prop('checked', this.checked);
    });
});

将第二个
文档
替换为最接近的非动态父文档,对属性使用
prop()
,并使用
change
事件捕获复选框状态的更改。

您的复选框是动态加载的还是静态加载的?您应该同时使用
prop()
.prop('checked',this.checked)我动态加载我的复选框吃我吧!我也不知道为什么会这样+我也是。这是您应该何时使用委派事件的一个完美示例+1为什么要选择两次文档<代码>$(函数(){$(此).on('change','.class_of…..
始终是jQuery DOM就绪函数中的
文档
,但通常在编写委托事件处理程序时不使用
引用它是一种好做法。执行冗余选择也不是一种好做法。以牙还牙。$.ajaxComplete每次启动ajax时都会触发调用完成,将事件重新绑定到页面上当前的任何元素。
$(document).ready(function() {
    $(document).on('change', '.class_of_checkbox', function() {
        if (this.checked) 
          $(".class_of other_checkbox").prop('checked', this.checked);
    });
});