0

ユーザーが上にいないときに変化する要素のアクションを作成するにはどうすればよいですか。mouseover要素はページの読み込み時にアクティブになりmouseleave、マウスの位置が要素の外にある可能性があるため、この状況では適用できません。

条件は次のとおりです。

if mouse is not over element:
   close element
else:
   do nothing

だから私が知りたいのは、現在のマウスの位置が特定の要素にない場合、jQuery/JavaScript でどのように確認できるかということです。

ありがとう!!

4

3 に答える 3

2

イベント ハンドラーを本文にバインドし、要求されたターゲットを確認できます。

$().ready(function() {
    $("body").on('mouseover',function(event) {
        if($(event.target).attr('id') === 'yourid' ) {
            console.log('do close this element');
        } else {
            console.log('do nothing');
        }
    }); 
});  
于 2012-12-22T08:51:06.823 に答える
1

グローバルブール値を使用して、マウスが現在要素の上にカーソルを置いているかどうかを追跡します。setInterval次に、要素を非表示にするかどうかを決定する(ある程度の時間間隔で)ブール値を定期的にチェックできます。

var mouseIsOver = false;

$('#elementId').hover(
  function () {
    mouseIsOver = true;
  }, 
  function () {
    mouseIsOver = false;
  }
);

setInterval(function() {
  if (mouseIsOver == false) {
    $('#elementId').fadeOut();
  }
}, 250);
于 2012-12-22T08:39:55.473 に答える
0

このための素晴らしいjQueryプラグインがあります。これは、イベント外のjQueryと呼ばれます。

こちらのホームページを確認してください:http://benalman.com/code/projects/jquery-outside-events/docs/files/jquery-ba-outside-events-js.html

使い方はとてもシンプルで簡単です。早い段階で素晴らしい経験を積んでこれをお勧めします。

于 2012-12-22T09:01:47.560 に答える