2009-02-28 15 views
2

は、私はjQueryを使って、いくつかのイベントのバインディングをしようとしている、と私は準備ができて、私の文書で、この単純なコードを持っている:JavaScript/jQuery:イベントが2回発生した

$(document).ready(function() { 
    $("p a").each(function(i, selected){ 
     $(selected).hover(
      function(event) { alert('over: ' + event.type); }, 
      function(event) { alert('out: ' + event.type); }); 
     } 
    ) 
}); 

私は、段落内のリンクthatsの上にマウスを移動するときに、(セレクタは「PA」)アラートポップアップが2回表示されます。したがって、マウスセンターとマウスは2回発射されます。

これはGoogle Chromeでのみ発生します。インターネット  Explorerの  7では、 3 FirefoxOperaSafariの両方のイベントは1回のみ起動されます。

なぜこれが起こっていますか?

答えて

6

何らかの理由でアラートが実際にChromeで余分なイベントを引き起こしていると思います。次のコードで私は1つのイベントしか見ることができません。

$(document).ready(function() { 
    $("p a").each(function(i, selected){ 
    $(selected).hover( 
     function(event) { $("p").append('<br>over: ' + event.type); }, 
     function(event) { $("p").append(' out: ' + event.type); }); 
    } 
) 
}); 
+1

いいえ - アラートが表示されるとすぐに、別のmouseoverイベントがトリガーされます。 – Shog9

+1

あなたの答えをありがとう。 私はSafariをチェックしました - そこには警告が "放棄"されたmouseleaveイベント... – emirc

8

これはあなたの質問に答えないと思いますが、この投稿は自分自身のバグを研究している間に起きました。問題が判明したのは、誤って外部のjavascriptを2回組み込んだことでした。

これは、同じ問題を抱えている他の人のためにこれを文書化する価値があると思っただけです。追跡に時間がかかった明らかなエラー!

+0

ありがとう、それは私の問題でした! ;)+1 –

関連する問題