jQuery事件处理程序“ .on()”

用户名

我对Jquery事件处理程序“ .on()”有问题。

我主页上的帖子中有一个“收藏夹”按钮。

如果您不喜欢该帖子:

  • 李不活跃
  • 赛事1

如果您喜欢该帖子:

  • li active
  • 赛事2

为什么当我多次单击该按钮(> 1)时,我的脚本执行相同的方法(Event),而我的li上没有class .active吗?

就像.on()不能管理动态的类更改...

我的HTML:

<ul class="post-list">
    <li>
        <a href="#" class="favorite">Favorite</a>
    </li>
    <li class="active">
        <a href="#" class="favorite">Favorite</a>
    </li>
</ul>

我的Jquery:

$(function(){
    $('.post-list li.active .favorite').on('click', function(e){
        e.preventDefault;
        // Event 2
    });
    $('.post-list li:not(.active) .favorite').bind('click', function(e){
        e.preventDefault;
        // Event 1
    });
});
脱水

jQuery将事件绑定到选择器的结果(一次)。您希望每次事件触发时都重新计算选择器,但那时处理程序已经绑定到最初与选择器匹配的任何元素。

尝试:

$(function(){
    $('.post-list li .favorite').on('click', function(e){
        e.preventDefault();
        if (e.target.hasClass('active') {
           //Event 2
        }
        else {
           //Event 1
        }
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

覆盖jQuery事件处理程序

来自分类Dev

jQuery事件处理程序组织

来自分类Dev

jQuery事件处理程序组织

来自分类Dev

动态jQuery事件处理程序

来自分类Dev

jQuery事件处理程序函数

来自分类Dev

在事件处理程序中删除jQuery事件处理程序

来自分类Dev

jQuery事件处理程序不触发

来自分类Dev

如何使用Click事件处理程序jQuery

来自分类Dev

jQuery .on()不绑定事件处理程序

来自分类Dev

jQuery .on数据还是事件处理程序?

来自分类Dev

jQuery键盘事件处理程序按住

来自分类Dev

jQuery的克隆不复制事件处理程序

来自分类Dev

jQuery:取消事件的按键处理程序

来自分类Dev

用于img的jQuery .on单击事件处理程序

来自分类Dev

jQuery对象上的事件处理程序

来自分类Dev

删除绑定到处理程序的jQuery事件

来自分类Dev

jQuery:表单提交-多个事件处理程序

来自分类Dev

jQuery事件处理程序逻辑

来自分类Dev

事件处理程序中的jQuery'this'范围

来自分类Dev

丢失的jQuery委托事件处理程序

来自分类Dev

jQuery事件处理程序不触发

来自分类Dev

jQuery click事件处理程序未触发

来自分类Dev

如何使用Click事件处理程序jQuery

来自分类Dev

jQuery AJAX和事件处理程序

来自分类Dev

删除绑定到处理程序的jQuery事件

来自分类Dev

JS / jQuery-在单个事件处理程序上使用全局事件处理程序

来自分类Dev

限制事件处理程序

来自分类Dev

注销事件处理程序

来自分类Dev

等待事件处理程序