2010-11-20 5 views
2

jQuery:Internet Explorerでイベントをトリガする正しいコードは何ですか?

ドロップダウンメニューの値が変更されたときにイベントをトリガーするために、次のコードを使用するように指示されています。

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

これはjQuery 1.2.7を使用しています(アップグレードできません)ウィジェットのスクリーンショットです:

alt text

すべてのブラウザで完全に機能しますが、IEではウィジェットをクリックするたびに(新しい値が選択される前でも)イベントがトリガーされます。

私はAJAX呼び出しをトリガーしているので、私はこれを容認できません。ありがとう

答えて

1

なぜmsieの小切手を追加しましたか?

単に以下試してください。

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

私は、クリックイベントをトリガするためにすべてのブラウザのクリックイベントを使用してIEで変更イベントを取得する傾向があります。

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

change()イベントが実際に他の人が示唆として、そしてもちろん、これは冗長である固定されている場合。しかし、古いjQueryコードベースを使用すると、うまくいきません。

+0

これは、前述の古いコードベースに関連する最新のものではないため、これをマークダウンしてはなりません。 – Orbling

+0

私はあなたの答えがあいまいであると思うのですが、あなたは「古い」と言っているときにどのバージョンのjqueryについて説明していないのか分からないので、実際にはOPを助けません。 – redsquare

+0

@redsquare change()私が想像する彼の経験。私の頭の上から私はこの機能が改良されたリビジョンを知りません。 – Orbling

関連する問題