jQuery mousedown + mouseleave

时间:2012-06-12 11:09:35

标签: jquery

我是一个正在建立一个简单的jQuery脚本的乞丐,当我拖出它的界限时,我希望我的动作发生。所以我正在考虑检测一个mousedown,并且在其功能内部有一个mouseleave。

但是,所发生的事情并不是我所期待的,因为每次我将鼠标移到它上面 - 无需点击,事件就会被触发。

这是我给他们的代码。

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

非常感谢,谢谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

试试这个:

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

mouseleave仅在.box包含CSS类clicked时才会继续,然后会删除该类,从而阻止再次触发mouseleave

答案 2 :(得分:0)

在事件触发后解除绑定:

$(".box").mousedown(function() {
    $(this).mouseleave(function(){
        $(this).unbind('mouseleave');
        alert("Hello world!");
    })
})