jquery - 为什么这个添加和删除类在 JQuery 中不起作用?

标签 jquery

为什么这不起作用?我快要疯了。

            <span class="fav"></span>

            $('.fav').on('click', function() {
                $(this).addClass('item-selected');
            });

            $('.fav.item-selected').on('click', function() {
                $(this).removeClass('item-selected');
            });

下面是完整的代码。这是无法撤消的第二部分。

        $('.fav').on('click', function() {
            $(this).addClass('item-selected').next('span.notification').toggleClass('show-notification').html("Hello world!");
            setTimeout(function(){
                $('.show-notification').removeClass('show-notification');
            },4000);
        });

        $('.fav.item-selected').on('click', function() {
            $(this).removeClass('item-selected').next('span.notification').toggleClass('show-notification').html("Goodbye world!");
            setTimeout(function(){
                $('.show-notification').removeClass('show-notification');
            },4000);
        });

最佳答案

当您声明 .fav 元素动态附加到 DOM 时,您需要使用委托(delegate)事件处理程序。另请注意,当您在连续单击时切换类时,您不需要多个处理程序;你可以只使用toggleClass()。试试这个:

$('#container').on('click', '.fav', function() {
  $(this).toggleClass('item-selected');
});
.item-selected {
  color: #C00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
  <span class="fav">Item</span>
  <span class="fav">Item</span>
  <span class="fav">Item</span>
  <span class="fav">Item</span>
</div>

关于jquery - 为什么这个添加和删除类在 JQuery 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716541/

相关文章:

javascript - 将 li 从一个 ul 移动到另一个 jQuery

node.js - 如何在node.js响应对象中设置JSON数据?

Javascript:防止元素中存在内部元素 "scrolling"

javascript - 在 css 中混合百分比和 px 而不使用 calc()

javascript - 如何为 Jquery 函数设置数据选择

javascript 只允许重定向同一域内的 url

javascript - 悬停时,子菜单未按预期停留

javascript - 在 javascript 或 jquery 中的图像之间切换

jquery - 表单很多,但只提交有变化的那一份

javascript - Chrome自动标签丢弃禁用javascript?