首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery wrap() in on()

jQuery wrap() in on()
EN

Stack Overflow用户
提问于 2013-08-05 10:09:30
回答 3查看 127关注 0票数 1

我使用下面的代码包装复选框。

代码语言:javascript
复制
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');

这在第一个页面上运行良好,但是每当使用AJAX从数据库中加载一些新的复选框时,它就停止包装它们。

那么,如何在这里使用jQuery on()来防止aobe问题呢?或者还有其他方法来解决这个问题?

问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-05 10:24:11

在ajax成功时再次调用它

代码语言:javascript
复制
$.ajax({
    success:function(){
        $('input[type="checkbox"]').each(function(){
            if(!$(this).parent().is('.checkableBox'))
            {
                $(this).wrap('<div class="checkableBox" />');
            }
        });
    }
});
票数 2
EN

Stack Overflow用户

发布于 2013-08-05 10:12:20

这是因为当您第一次称它为“额外”元素时,它并不是DOM的一部分。将代码放入函数中:

代码语言:javascript
复制
function wrapChecks(){
   $('input[type="checkbox"]').wrap('<div class="checkableBox"/>');

}

然后在页面加载时调用此函数,然后在ajax回调中再次调用。

票数 0
EN

Stack Overflow用户

发布于 2013-08-05 10:14:58

在ajax更新到页面之后,您是否调用jquery函数来执行这个命令?如果不是,你应该这么做。

正如Jose建议的那样,将包装放入一个函数中。

一旦ajax查询将额外的复选框加载到网站中,执行一个检查(针对ex: .change()事件)到父div,如果未包装新数据,则调用函数在其中包装新数据。)

您可以使用.parent()函数来检查父div是否是"checkablebox“。如果不是,则用div复选框包装新加载的复选框。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18055555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档