jquery - .parents().removeClass() 不起作用

标签 jquery removeclass jquery-masonry parents

我得到了这个 javascript,试图删除父元素上的类:

$(this).parents(".box").removeClass("expanded");

在此 html 上:

<div class="box trx">
<a href="javascript:;" class="open-content"><?php the_post_thumbnail('thumbnail'); ?></a>
<div class="expandable">
    <?php the_content(); ?>
    <span class="simple">
        <a class="cunload" href="javascript:;">Close</a>
    </span>
</div>
</div>

不幸的是,到目前为止这还不起作用。我做了一些测试,例如:

$(this).parents(".box").removeClass("trx");

$(this).parents(".box").addClass("exd");

一切正常。我在 wordpress 网站上使用 jQuery 1.6.2jQuery masonry 。有直播demo here看到这一切(不)工作。基本上它可以工作,但事实上该类没有从 div 中删除,确实会立即重新打开 div 及其内容。我很困惑为什么它不删除 .expanded 类。

编辑:我只是知道加载文档时该类还在那里。它是在点击图片后添加的,因此我认为我的删除问题来自于此。抱歉,解释有误导性。

最佳答案

您在 .box 元素上有一个点击处理程序。

在其中,.cunload 元素上有一个点击处理程序。

由于 .cunload 嵌套在 .box 中,当您按下 close 按钮时,两个元素都会接收到 click 事件,因此它重新打开..(由于事件在 DOM 层次结构中向上冒泡)

.cunload 处理程序更改为

$('.cunload').click(function(e){
            e.stopPropagation();
            restoreBoxes();
            $(this).parents(".box").removeClass("expanded");
});

关于jquery - .parents().removeClass() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7843472/

相关文章:

jquery masonry 60% 和 40% 列

jquery - masonry 百分比项目溢出页面宽度

javascript - 将 jQuery 引用放在 Masterpage 中有什么好处?

javascript - 具有多个条件的 jQuery Slick Slider 过滤

jquery - 移动设备和平板电脑上粘性标题上的奇怪 flickr

jquery - .addClass 并删除现有的

css - 使用 Masonry 将一组图像居中

jquery - 如何使用 jquery 删除所有 Div 内容但不删除 div?

javascript - 如何删除除您单击的类(class)之外的所有类(class)?

php - 如果 anchor 中存在 href,removeClass 将不起作用