jQuery函数创建循环

问题描述 投票:0回答:3

在下面的设计中:

<div class="hero">

    <div class="niro">
        <div class="piro"> My </div>
        <div class="piro"> Awesome </div>
        <div class="piro"> List </div>
    </div>

    <div class="zero">
        <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a>
    </div>
</div>

在jQuery中,我想包装所有piro类,所以,我做了类似的事情

$('.piro').wrapAll('<div class="piro-extended"> </div>');

当页面第一次加载时,输出的代码是:

<div class="hero">

    <div class="niro">
        <div class="piro-extended">
            <div class="piro"> My </div>
            <div class="piro"> Awesome </div>
            <div class="piro"> List </div>
        </div>
    </div>

    <div class="zero">
        <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a>
    </div>
</div>

但是当我单击colorbox链接并关闭模态后,同一页面的代码会导致wrapAll()循环:

<div class="hero">

    <div class="niro">
        <div class="piro-extended">
            <div class="piro-extended">
                <div class="piro-extended">
                    <div class="piro"> My </div>
                    <div class="piro"> Awesome </div>
                    <div class="piro"> List </div>
                </div>
            </div>
        </div>
    </div>

    <div class="zero">
        <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a>
    </div>
</div>

我如何摆脱这个循环?

jquery loops colorbox
3个回答
0
投票

添加条件怎么样?

if($('.piro-extended').length == 0) {
    $('.piro').wrapAll('<div class="piro-extended"> </div>');
}

0
投票

使用unwrap()

   $(".colorbox-load").click(function(){
     $('.piro-extended').unwrap();
    });

0
投票

试试这个:

$('.piro').wrapAll('<div class="piro-extended" />');
© www.soinside.com 2019 - 2024. All rights reserved.