2012-02-12 7 views
0

mouseoverは、マウスが の領域に入るたびに "if"ステートメントをチェックするイベントとしてバインドされますが、 "if"は1回だけチェックします。クラスがなく、 "if" がfalseになると、ホバーは引き続き動作します。ホバーとif文発射ONCE

毎回クラスが存在するかどうかを確認する必要があります。

$('.input-medium').on('mouseover' , function() { 
    if ($(this).attr('id') === 'error-highlight') { 
      $(this).hover(
        function() { 
         $('<p class="reg-tooltip">test test</p>').appendTo('body'); 
        }, 

        function() { 
         $('p').remove(); 
        }); 
     } 
}); 
+0

小さなミス - 私は、IDのOFCではなく、クラス – Umren

+1

を意味マウスオーバーハンドラ内ホバーハンドラを作成しないでください - 作成されます。マウスオーバーハンドラがトリガされるたびに1つずつホバーハンドラが増えます。それがマウスオーバーハンドラでやっている唯一のものなら、あなたはそれを必要としません。 $(入力媒体)と言うだけです。ホバー(...); ' – nnnnnn

+0

@nnnnnnここには1つ以上の問題があるようです;)ありがとうございました; – Umren

答えて

3

ソリューション:hover自体にif条件を追加します。

$('.input-medium').hover(
    function() { 
     if (this.id === 'error-highlight') { 
      $('<p class="reg-tooltip">test test</p>').appendTo('body'); 
     } 
    }, 
    function() { 
     $('p.reg-tooltip').remove(); // <-- Always remove temporary element 
    } 
); 
+0

ありがとう – Umren