1. 程式人生 > >jquery觸發兩次onchange事件

jquery觸發兩次onchange事件

chang 標簽 settime onchange 發現 公告 變量 全局變量 query

在項目中需要給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事件