4

私のコードは Firefox でしか動作しません。どうしてこれなの?

HTML:

<select id="selecter">
         <option>one</option>
         <option>two</option>
         <option>three</option>
   </select>

Javascript:

$(function() {
   $(document).on("mouseover", "#selecter option",function(){
            alert(1)        
    });
});

IE と chrome がマウスオーバー イベントを発生させない理由が気になります。この JSFiddle を参照してください: http://jsfiddle.net/yT6Y5/72/ (Firefox で完全に動作します。)

IE と Chrome でマウスオーバー イベントを発生させるにはどうすればよいですか?

4

3 に答える 3

4

問題は、ブラウザがドロップダウンを異なる方法でレンダリングすることです。Chrome はそれを HTML コンポーネントとしてではなく、ネイティブ GUI コンポーネントとしてレンダリングしています。JS からホバー ハンドラーを関連付けることはできません。

すべてのブラウザで動作することを確認したい場合は、ドロップダウンを使用しないか、HTML 要素を使用するドロップダウンを作成するスクリプトを取得してください。

于 2013-02-23T09:07:18.070 に答える
1

IE と chrome のオプションにカーソルを合わせても、実際にはイベントが発生しないようです。

せいぜい変更イベントにバインドする必要があります。

$(function() {
    $("#selecter").change(function(){
            alert(1);
    });
});
于 2013-02-23T09:08:08.540 に答える
-2

たぶん、イベントをバインドする別のアプローチを使用する必要があります

 $(function() {
    $("#selecter").mouseover(function(){
        alert(1)        
     });
  });
于 2013-02-23T09:02:32.443 に答える