我得到了这个 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.2 和 jQuery 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/