0

マウスがビューポートから離れたときに関数をトリガーするにはどうすればよいですか?

「html」から「mouseleave」イベントをリッスンします。ただし、Firefox では、「mouseleave」も 2 つの状況でトリガーされます。1.アラートポップアップが表示されたとき(ぼかし/フォーカスリスナーを追加して解決しました) 2.ページを右クリックして、マウスを表示メニューに移動したとき。

私のマウスがまだページにあるとしても、Firefoxはこの動作を「マウスリーブ」と見なしているようです。

これが私のコードです。

$('html').bind('mouseleave',bouncehandler);
var visted = 1;
var bouncehandler = function(e){  
    var yheight = $(window).height();
    if(e.pageX<$('body').width() && e.pageY < yheight ){
       alert('leaving');
       $('html').unbind('mouseleave',bouncehandler);
    }
}

$(window).blur(function(){
   $('html').unbind('mouseleave',bouncehandler);
}).focus(function(){
   if(visited){
       $('html').bind('mouseleave',bouncehandler);
    }
});

この問題を解決するにはどうすればよいですか? ありがとう

4

1 に答える 1

0

ビューポート内でのみ、マウスの位置とマウス イベントを取得できます。

次のように、ブラウザが閉じたときに実行される関数を設定できます。

function confirmExit(){
    alert("confirm exit is being called");
    return false;
}

window.onbeforeunload = confirmExit;
于 2013-01-31T18:03:47.893 に答える