jQuery:在Internet Explorer中触发事件的正确代码是什么?

时间:2010-11-20 08:50:02

标签: jquery internet-explorer

我正在使用jQuery 1.2.7(我无法升级)

为了在下拉菜单选择值更改时触发事件,我被告知使用以下代码:

$('#dropdownWidget').bind($.browser.msie ? 'click' : 'change', function(event) {
        //myEvent
});

这是小部件的屏幕截图:

alt text

它适用于所有浏览器,但在IE中,每次用户点击窗口小部件时都会触发事件(甚至在选择新值之前)。

由于我正在触发AJAX调用,我无法忍受这一点。感谢

2 个答案:

答案 0 :(得分:3)

我倾向于对所有浏览器使用click事件,并使用IE获取更改事件以触发click事件。

$('#dropdownWidget').bind('click', function(event) {
        //myEvent
}).bind('change', function(event) {
    if ($.browser.msie) {
      $(this).click();
    }
});

如果change()事件确实已经像其他人所建议的那样被修复,那么当然这是多余的。但你很可能会使用较旧的jQuery代码库。

答案 1 :(得分:1)

那为什么要为msie添加支票?

只需尝试以下操作:

$('#dropdownWidget').bind('change', function(event) {
      alert('test');  //myEvent
});