Jquery点击事件触发两次
Jquery click event fire twice
我正在用Jquery构建一些东西,并且我正在进行一些Ajax调用。因此,在ajax调用之后,我需要调用函数来再次跟踪对某些元素的单击。下面是这样一个函数的例子:
$(document).ready(function () {
initSomething();
});
function initSomething(){
$('.something').click(function(){
alert('hello');
});
}
现在是ajax函数:
$('#AddSomething').click(function(){
$.post('somewhere.php',{data},function(data){
initSomething();
});
});
问题是:我觉得当我initSomething();第二次,它就像是在读取一个click事件,这个事件已经被第一个initSomething在document ready上调用。
所以我尝试了e.p preventdefault和e.p preventpropagation()之类的东西,但它似乎不起作用,我错过了什么?
谢谢你的回答,祝你有美好的一天!编辑:正如在答案中看到的,我忘记说Ajax调用是在DOM中插入新的。something元素…
编辑2:这里有一个jsfiddle: https://jsfiddle.net/wpsnz7op/
尝试.off() api删除已经附加的事件,并像下面这样重新分配事件。
function initSomething(){
$('.something').off('click').click(function(){
alert('hello');
});
}
希望对您有所帮助....
不需要从我看到的代码中重新绑定点击。
只要不重新绑定,你就不会有多次点击的问题。
使用事件委托代替。
$(document).on('click','.something',function(){
alert('hello');
});
那么在ajax之后就不需要调用initSomething();
函数了
相关文章:
- Jquery点击事件必须点击两次
- 一次点击,两次'单击'事件已启动
- 替换的超时事件触发两次或两次以上(有时)
- jquery on触发器按键事件两次
- 骨干视图触发事件两次
- animationEnd 事件处理程序 - 事件侦听两次
- 触发的事件被接收两次.如何找到鬼视图
- 服务器触发客户端事件两次
- `object:selected`事件触发两次
- 如何处理iframe中两次或根本不触发的IE11 localStorage事件
- 谷歌地图api v3 zoom_changed事件在fitBounds调用后激发了两次
- 为什么主干视图触发更改事件两次
- 如何防止在快速单击时两次调用en事件处理程序
- jQuery点击事件触发两次
- 为什么事件mouseenter在JavaScript中触发两次
- 在具有单击事件的 li 内时停止选中两次复选框
- 引导模式切换事件发生两次
- j查询点击事件触发两次
- 骨干模型触发“变化”.两次事件
- 在父元素具有相同事件函数的子元素上单独触发两次事件函数