如果在更换对象后检查对象,是否有办法继续检查对象
这说明了我遇到的问题
一旦替换了元素,就不会再次触发更改功能,而我很清楚为什么会这样,我不知道如何解决这个问题。
我有很多复选框,并且在替换它们时添加一个脚本似乎不是最好的主意。
有没有办法重新初始化ajax更新的jquery函数?
答案 0 :(得分:1)
您需要事件委派。为此,您可以将on()
与jQuery 1.7+一起使用,如下所示:
.on()
:
$(document).ready(function() {
$('#f').on('change', ' input:checkbox', function() {
$('#textbox1').val($(this).attr('id') + " " + $(this).is(':checked'));
$(this).replaceWith('<input type="checkbox" id="checkbox1" class="ichange"/>')
});
});
但是,你的小提琴显示jQuery 1.6.2
。在这种情况下,您可以使用live()
或delegate()
。
$(document).ready(function() {
$('#f input:checkbox').live('change', function() {
$('#textbox1').val($(this).attr('id') + " " + $(this).is(':checked'));
$(this).replaceWith('<input type="checkbox" id="checkbox1" class="ichange"/>')
});
});
$(document).ready(function() {
$('#f').delegate('input:checkbox', 'change', function() {
$('#textbox1').val($(this).attr('id') + " " + $(this).is(':checked'));
$(this).replaceWith('<input type="checkbox" id="checkbox1" class="ichange"/>')
});
});
但如果你可以将.on()
与jQuery 1.7 +一起使用会更好。