首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.parents().removeClass()不能工作

.parents().removeClass()不能工作
EN

Stack Overflow用户
提问于 2011-10-20 23:31:18
回答 4查看 7K关注 0票数 2

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

代码语言:javascript
复制
$(this).parents(".box").removeClass("expanded");

在这个html上:

代码语言:javascript
复制
<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>

不幸的是,到目前为止这还不起作用。我做了几次测试,比如:

代码语言:javascript
复制
$(this).parents(".box").removeClass("trx");

代码语言:javascript
复制
$(this).parents(".box").addClass("exd");

一切都很好。我正在使用jQuery 1.6.2jQuery wordpress站点上。这里有一个实时的,可以看到所有的(不工作)都在工作。基本上,它可以工作,但类没有从div中删除这一事实确实会立即重新打开div及其内容。对于为什么不删除.expanded类,我感到很困惑。

编辑:我刚刚了解到,在加载文档时,类还在那里。它是添加后,点击一张图片,因此我认为我的删除问题来自这个。很抱歉你的解释有误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-20 23:37:23

.box元素上有一个单击处理程序。

在它内部,.cunload元素有一个单击处理程序。

由于.cunload是嵌套在.box中的,所以当您按close按钮时,两个元素都会收到单击事件,所以它会重新打开。(由于DOM层次结构中出现的事件)

.cunload处理程序更改为

代码语言:javascript
复制
$('.cunload').click(function(e){
            e.stopPropagation();
            restoreBoxes();
            $(this).parents(".box").removeClass("expanded");
});
票数 2
EN

Stack Overflow用户

发布于 2011-10-20 23:36:29

也许这会奏效:

代码语言:javascript
复制
$(this).parents(".box").filter(".expanded").removeClass("expanded");
票数 0
EN

Stack Overflow用户

发布于 2011-10-20 23:40:12

如果我使用这个代码:

代码语言:javascript
复制
$(".cunload").click(function() {
    $(this).parents(".box").removeClass("trx");
});

使用此HTML:

代码语言:javascript
复制
<div class="box trx">
<div class="expandable">
    <span class="simple">
        <a class="cunload" href="#">Close</a>
    </span>
</div>
</div>

然后,它似乎完全按照设计工作,您可以在这里看到它的工作:http://jsfiddle.net/jfriend00/Djjuz/。单击“关闭”链接,查看删除trx类时背景色是否会发生变化。

因此,您的代码中肯定有一些您没有披露的东西,使其无法工作。请包括您用来触发函数的确切代码,也许可以更好地解释您正在尝试做什么,以及您观察到发生了什么或没有发生什么。

如果您希望我们使用到工作页面的链接,请描述相关代码在哪里(该页面中有大量JS文件),并描述您单击的内容以及预期的结果。到目前为止,您只告诉我们一些东西不起作用,但是没有给我们足够的上下文来确定什么东西不工作,您使用什么代码触发它,以及我们如何可能复制问题或者自己看到问题。如果你想要高质量的帮助,你必须给我们足够的信息来帮助你自己。

另外,您是否意识到当您传递选择器.parents("selector")方法时,它只将操作限制在与该选择器匹配的父级上?因此,.parents(".box")只对具有class"box"的父对象进行操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7843472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档