我使用以下代码包装复选框。
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
这在第一页上运行良好,但每当使用AJAX从数据库加载一些新的复选框时,它就会停止包装它们。
那么,我如何在这里使用jQueryon()来防止aobe问题呢?或者有其他方法可以解决这个问题吗?
问候
在ajax成功中再次调用它
$.ajax({
success:function(){
$('input[type="checkbox"]').each(function(){
if(!$(this).parent().is('.checkableBox'))
{
$(this).wrap('<div class="checkableBox" />');
}
});
}
});
这是因为当您第一次调用它时,"extra"元素不是DOM的一部分。将您的代码放入一个函数中:
function wrapChecks(){
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
}
然后在页面加载时调用此函数,然后在ajax回调中再次。
您是否在页面的ajax更新后调用jquery函数来执行此命令?如果没有,您应该这样做。
正如Jose所建议的,把包装放在一个函数中
ajax查询将额外的复选框加载到网站中后,执行一次检查(例如:父div的.change()事件,如果新数据尚未包装,则调用函数将其包装。)
您可以使用.Pparent()函数来检查父div是否为"checkablebox"。如果不是,那么用div checkablebox包装新加载的复选框。