jquery - 嵌套元素不会删除父类

标签 jquery parent-child removeclass

该类设置在 <li>通过点击它。现在,嵌套元素 ( <button> ) 不会从其父元素中删除该类。

提前致谢。

$(document).ready(function() {
      $('.pickOne li').click(function() {
        $(this).addClass('active');
      });

      $('.settingsCancelBtn').click(function() {
        $(this).parent().parent().removeClass('active');
      });
    });

HTML 如下所示:

<div class="fromCamp pickOne four">
                <ul class="four">
                    <li class="first bus"><a href="#" alt="By Bus"></a>
                        <div>
                            <p class="cmInfo">Arrive between 9 AM and 11 AM. Read these <a href="#">additional instructions</a>. <a href="#">Driving Directions</a></p>
                            <p><a href="#">Tilefishes</a></p>
                            <p><a href="#">Bluefishes</a></p>
                            <p><a href="#">Tigerfishes</a></p>
                            <button class="cmCancelDeleteButton settingsCancelBtn" type="button">Cancel</button>
                            <button class="cmGoButton settingsSaveBtn" type="button">Save</button>
                        </div>
                    </li>
                    <li class="second car"><a href="#" alt="By Car"></a>
                        <div>
                            <p><a href="#">Remoras</a></p>
                            <p><a href="#">Tilefishes</a></p>
                            <p><a href="#">Bluefishes</a></p>
                            <p><a href="#">Tigerfishes</a></p>
                            <button class="cmCancelDeleteButton settingsCancelBtn" type="button">Cancel</button>
                            <button class="cmGoButton settingsSaveBtn" type="button">Save</button>
                        </div>
                    </li>
                    <li class="third plane"><a href="#" alt="By Plane"></a>
                        <div>
                            <p class="cmInfo">Arrive between 9 AM and 11 AM. Read these <a href="#">additional instructions</a>. <a href="#">Driving Directions</a></p>
                            <p><a href="#">Tilefishes</a></p>
                            <p><a href="#">Bluefishes</a></p>
                            <p><a href="#">Tigerfishes</a></p>
                            <button class="cmCancelDeleteButton settingsCancelBtn" type="button">Cancel</button>
                            <button class="cmGoButton settingsSaveBtn" type="button">Save</button>
                        </div>
                    </li>
                    <li class="fourth stayOver"><a href="#" alt="Staying Over"></a>
                        <div>
                            <p><a href="#">Remoras</a></p>
                            <p><a href="#">Tilefishes</a></p>
                            <p><a href="#">Bluefishes</a></p>
                            <p><a href="#">Tigerfishes</a></p>
                            <button class="cmCancelDeleteButton settingsCancelBtn" type="button">Cancel</button>
                            <button class="cmGoButton settingsSaveBtn" type="button">Save</button>
                        </div>
                    </li>
                </ul>
            </div>
            <div class="cmClear"></div>
        </div>

最佳答案

好的,这就是发生的事情:

因为您的按钮包含在 LI 中,所以当您单击该按钮时,它会删除该类,然后事件继续传播并重新应用该类。

所以它正在删除;它只是立即重新申请。所以添加

  // Dont forget to put the e in function()
  $('.settingsCancelBtn').click(function(e) {
    $(this).parent().parent().removeClass('active');

    // This is the new line!
    e.stopPropagation();
  });

关于jquery - 嵌套元素不会删除父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023097/

相关文章:

objective-c - 将数据传递给 parentViewController [iOS]

javascript - 单击时 JQuery 淡出列表元素

jquery - 单击更改类的可见性

jquery 对同一事件和元素多次实时触发

WordPress:一页可以有两个 parent 吗?

AngularJS:如何使用 id 作为 $scope 变量传递来添加/删除类?

css - JQuery UI 删除类动画显示不起作用

jquery - 使用 jQuery addClass/removeClass 时如何返回默认样式/主题?

jquery fade 元素不显示样式为 'visibility: hidden' 的元素

jquery - 如何在一个引导模式中绑定(bind)动态数据