jQuery事件和双触发
jQuery events and double firing?
当我用AJAX动态加载jQuery时,具有现有事件的元素会触发多次。
基本上我有一个名为'myjs.js'的文件,其中包含我所有的jQuery,并在页面加载时包含,因此设置事件等元素。
现在,当用户触发一个事件,如发布一个新的评论,它发送(通过Ajax)的评论,然后它返回一个新的评论,编辑评论,回复等页面。显然,当myjs.js
第一次加载时,它没有为新加载的元素创建任何事件。因此,我将myjs.js
包含在AJAX返回的页面中。
由于myjs.js
已经被加载到页面中,当Ajax页面包含myjs.js
返回时,它会向已经加载到页面中的元素添加另一个事件。
我已经试过了
$('*').unbind();
但这引起了一些奇怪的效果。
所以关于动态加载jQuery而不影响任何已经存在的元素事件的想法?
在没有看到jQuery代码的情况下,我怀疑用于绑定行为的选择器太过通用,所以正如您所发现的那样,所有现有元素加上新加载的元素每次都是匹配的:
可以在AJAX响应返回的JavaScript中使用更具体的绑定,将行为仅添加到新加载的元素中。
但是,为每个AJAX请求返回相同的JavaScript是低效的,因为浏览器无法缓存。理想情况下,您应该尝试在主页上加载一次JavaScript,然后依靠jQuery为新加载的元素自动执行.live()
绑定。这也称为事件委托- .delegate()
.on()
相关文章:
- 选择onclick事件jquery
- 用于多个类事件Jquery的单个函数
- 激发滑块's幻灯片事件jquery ui
- 设置重复按钮以注册点击事件jquery
- 保留当前点击事件jquery
- 启动/停止按键事件jquery
- 在事件jquery中插入一个函数
- 删除克隆的事件JQuery
- typeahead选择事件(jQuery)的动态绑定
- 触发自定义事件 Jquery
- 绑定两次或更多次的事件 jquery
- 单击时的事件 jquery 不起作用
- 在鼠标悬停事件 jquery 上显示边框的内容
- 同时触发两个鼠标事件 jQuery
- 焦点事件 jquery 组合框/自动完成
- 如何在页面中捕获“正文”和“正文”事件[Jquery].
- 将对象传递给事件 jQuery
- 验证“取消”上的字段 单击Onbeforeunload事件JQUERY
- 复选框单击事件 jQuery 不起作用
- 口述事件jquery顺序