Javascript jQuery在加载其他内容后不工作
我对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
<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);
});
});