jquery触发两次onchange事件

Posted 梁凤财Zeno

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery触发两次onchange事件相关的知识,希望对你有一定的参考价值。

在项目中需要给select绑定改变事件,来触发动作,但是发现改变一次select,onchange方法执行两遍

//公告类别的变更时间联动公告模板
$("#test").change(function () {
  alert(1);
})

 

后来给select 标签添加一个onchange属性也会触发两次,这个onchange时间的机制是,在获取焦点之后,储存一个select里面的值,当发现这个值改变的时候,触发onchange事件

目前仅在IE8下发现此类问题,我仅测试了IE8/Chrome25/Firefox19

网上说可以通过一个全局变量控制来拒绝,不过方法很笨,还有一种方法就是用settimeout

 

$(‘#test1‘).bind("change", function(){

$(this).unbind("change",thatFun);

//you can do something here
alert(this.value);

//rebind again
setTimeout(function(){$(that).bind("change",thatFun)},0);//why use setTimeout? sorry, I don‘t know...
});

以上是关于jquery触发两次onchange事件的主要内容,如果未能解决你的问题,请参考以下文章

图片上传预览

复选框 onchange 触发两次

为啥prop()不会触发带有jquery的收音机的onchange事件[重复]

使用 javascript/jquery 触发 onchange 事件时更新 DOM 中的哈希值

jquery radio改变时没有触发on的change事件,是为啥

怎样使用jQuery触发Select,Radio的change/onchange事件