如果窗口加载大小调整函数已经包装了jquery,如何停止包装函数

时间:2016-10-26 07:03:53

标签: jquery

如果jQuery追加函数已加载并调整窗口大小

,我必须停止它
$(document).on('load resize', function){
  $(li.mayactive).wrapAll('<span></span>');
});

我也试过使用这段代码

$(document).one('load resize', function){
  $(li.mayactive).wrapAll('<span></span>');
});

HTML

<ul>
    <li class="myactive"><a href="#">test</a></li>
    <li><a href="#">test</a></li>
</ul>

但是当窗口加载时它会包裹一次,而当窗口大小调整时它会再次包装。

1 个答案:

答案 0 :(得分:0)

检查父项是否为span(可能具有某些唯一属性)。

$(document).on('load resize', function){
    if (!$(li.mayactive).parent().is('.parent')) {
        $(li.mayactive).wrapAll('<span class="parent"></span>');
    }
});

如果你有结构

<ul>
    <li class="active"></li>
    <li></li>
</ul>

.wrapAll会使您的HTML无效:

<ul>
    <span class="parent">
        <li class="active"></li>
    </span>
    <li></li>
</ul>