当复选框位于页面本身内时,以下代码可以正常工作。当有问题的内容从jquery .load
加载时,它不会注册复选框。
以下html
代码显示在<div id='output'></div>
中。当我将它移到div之外时,它工作正常。
的 JS 的
$(document).ready(function() {
$('#dropdown').change( function() {
$('#output').load('/process.php',{dropdown: $(this).val()});
});
$(".checkbox").click(function(){
$('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
});
HTML for process.php
<input type="checkbox" class="checkbox">
答案 0 :(得分:5)
您必须使用on()方法来考虑通过AJAX添加到DOM的元素。尝试更改此内容 -
$(".checkbox").click(function(){
$('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
对此 -
$('body').on('click', '.checkbox', function(){
$('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
答案 1 :(得分:3)
尝试将checkbox
处理程序更改为
$("body").on("click", ".checkbox", function(){
$('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
答案 2 :(得分:3)
也许你应该通过实时绑定来试试
$(document).ready(function() {
...
$(document).on( 'click', '.checkbox', function(){
$('#continue').prop('disabled',$('input.checkbox:checked').length == 0);
});
});
这种方式允许您监听事件,也就是事件绑定完成后声明的对象。