0

私は現在、単純な jQuery スクリプトを作成しているビギナーであり、境界の外にドラッグしたときにアクションを実行したいと考えています。だから私はマウスダウンを検出することを考えていて、その機能の中にマウスリーブがあります。

しかし、マウスをその上に置くたびに、クリックする必要がなく、イベントがトリガーされるため、何が起こるかは私が期待しているものではありません。

ここに私がまとめたコードがあります。

 $(document).ready(function() {
   $(".box").mousedown(function() {
     $(".box").mouseleave(function() {
       alert("Hello world!");
     });
   });
 });

ありがとうございます。

4

3 に答える 3

0

これを試して:

$(document).ready(function() {
    $(".box").mousedown(function() {
        $('.box').addClass('clicked');
    });
    $(".box").mouseleave(function() {
        if ($(this).hasClass('clicked')){
            $(this).removeClass('clicked');
            alert("Hello world!");
        }
     });
 });

はCSS クラス を持っているmouseleave場合にのみ続行し、クラスを削除して、が再びトリガーされるのを防ぎます。.boxclickedmouseleave

于 2012-06-12T11:17:07.487 に答える
0

イベントがトリガーされた後、イベントのバインドを解除するだけです。

$(".box").mousedown(function() {
    $(this).mouseleave(function(){
        $(this).unbind('mouseleave');
        alert("Hello world!");
    })
})
于 2012-06-12T11:21:40.667 に答える