热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jQuery.on()无法正常工作

如何解决《jQuery.on()无法正常工作》经验,为你挑选了1个好方法。

这将是一个难以解释的...

我有一个按钮,这是一个自定义按钮.


在用户单击之后,我执行AJAX调用并向数据库添加一行,然后添加和删除该类.

btn.removeClass('btn-success')
          .removeClass("like-post")
          .addClass('btn-default')
          .addClass('unlike-post')
          .html(" Un-like");

这一切都运行正常,除非在课程改为'不匹配'之后,按钮仍然会对类似后的类触发器做出反应.

所以我有这个:

$(".like-post").on('click', function(){ });

即使在按钮没有类似帖子之后,也会执行该操作.我已经检查过,该课程肯定会被删除/正确添加.

我想用不同的帖子类进行另一个动作,但是在解决之前不能这样做.

我注意到我网站上其他地方有关于.on()的类似问题.我无法在jsFiddle中重现这个问题,因为它在那里工作得很好.

使用bootstrap +最新的jQuery版本.有任何想法吗?我知道这是一个很长的镜头,但认为有人可能有类似的问题.

谢谢.



1> Gone Coding..:

问题是您将处理程序连接到元素,之后如果类更改则无关紧要.

使用附加到不变的祖先的委托处理程序:

 $(document).on("click", ".like-post", function(){ });

委托事件通过监听事件来冒泡到祖先元素.然后,他们在事件时间(而不是事件注册时间)将jQuery过滤器应用于bubble-chain中的元素.然后,它们仅将函数应用于导致事件的匹配元素.这种类型的处理程序实际上可以更高效(因为它以更快的设置时间交换速度稍慢的事件处理程序).由于点击速度非常慢,您永远不会注意到委托事件处理程序比直接连接的处理程序慢.

is the default if no other element is handy, but never use委托事件的文档正文`因为它有一个错误(如果样式导致计算的正文高度为0,它将不响应鼠标事件).

通常,您会尝试绑定到更改元素附近的祖先.


我不知道'身体'的错误.你能链接到更多信息吗?
推荐阅读
author-avatar
那一抹细雨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有