首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery更改元素而不更改其子元素

jQuery更改元素而不更改其子元素
EN

Stack Overflow用户
提问于 2014-02-01 17:51:26
回答 2查看 27关注 0票数 0

我想创建一个打开的菜单,当我点击一次,它打开,并显示给我其他李的,但我不想点击李氏的打开(孩子李的)它会关闭。我不想让它做什么。所以我想选择李的父母,但不是它的孩子,也是李。这是我尝试过的代码和解决方案,但没有奏效。

代码语言:javascript
运行
复制
        <ul>
            <li class="only">1dkhg
            <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSrRT0M-NSrnnPJrKSF3YtyJGtSXjcBQHuuql5vp-cUYEx-j-F8">
                <ul>
                    <li class="no">1kldg</li>
                    <li class="no">2kldg</li>
                    <li class="no">3kldg</li>
                </ul>
            </li>

而jquery:

代码语言:javascript
运行
复制
$(document).ready(function() {

    $(".only:not('.no')").click(function() {
        $( this ).find('ul').animate({
            height: "toggle"
         });
        $(this).find('img').toggleClass('click');
    });

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-01 17:56:16

你可以用:

代码语言:javascript
运行
复制
$(".only").click(function (e) {
        if(e.target !== this) return;
        $(this).find('ul').animate({
            height: "toggle"
        });
        $(this).find('img').toggleClass('click');
    });
票数 2
EN

Stack Overflow用户

发布于 2014-02-01 17:54:05

一个更好的结构是在根anchor中使用li,这样当您单击锚点时,子ul就会打开。这样您就可以避免担心事件冒泡,描述单击目标在语义上更准确:

代码语言:javascript
运行
复制
<ul id="nav">
  <li>
    <a href="#">Anchor</a>
    <ul>
      <li>sub anchors</li>
    </ul>
  </li>
</ul>

Javascript:

代码语言:javascript
运行
复制
$('#nav>li>a').click(function(e){
  $(this).next().slideToggle();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21501431

复制
相关文章

相似问题

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