我使用下面的代码包装复选框。
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');这在第一个页面上运行良好,但是每当使用AJAX从数据库中加载一些新的复选框时,它就停止包装它们。
那么,如何在这里使用jQuery on()来防止aobe问题呢?或者还有其他方法来解决这个问题?
问候
发布于 2013-08-05 10:24:11
在ajax成功时再次调用它
$.ajax({
success:function(){
$('input[type="checkbox"]').each(function(){
if(!$(this).parent().is('.checkableBox'))
{
$(this).wrap('<div class="checkableBox" />');
}
});
}
});发布于 2013-08-05 10:12:20
这是因为当您第一次称它为“额外”元素时,它并不是DOM的一部分。将代码放入函数中:
function wrapChecks(){
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
}然后在页面加载时调用此函数,然后在ajax回调中再次调用。
发布于 2013-08-05 10:14:58
在ajax更新到页面之后,您是否调用jquery函数来执行这个命令?如果不是,你应该这么做。
正如Jose建议的那样,将包装放入一个函数中。
一旦ajax查询将额外的复选框加载到网站中,执行一个检查(针对ex: .change()事件)到父div,如果未包装新数据,则调用函数在其中包装新数据。)
您可以使用.parent()函数来检查父div是否是"checkablebox“。如果不是,则用div复选框包装新加载的复选框。
https://stackoverflow.com/questions/18055555
复制相似问题