我得到了这个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石工。有一个实时的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");
});