jquery触发两次onchange事件

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

//这是那个标签,用的是我们公司内部的selectlist

<select class="selectpicker" id="gglb" name="bulletinclass"
title="请选择 公告类别" data-live-search="false" data-width="" ></select>

 

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

 

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

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

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

 

$("#test").change(function () {
var thatFun=arguments.callee;//获得这个函数本身
var that=this;//获得这个元素
$(that).unbind("change");//去掉绑定

//在这里执行代码do ti

//重新绑定这个函数
setTimeout(function(){$(that).bind("change",thatFun)},0);
})

转载于:https://www.cnblogs.com/ZenoLiang/p/7262639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值