2012-04-25 134 views
1

我创建了一个可拖动的对象,当对象从左向右(隐藏),然后从右向左(显示)拖动时,我可以隐藏和显示内容。对象不能超过左侧或右侧(遏制:“父母”)。该事件是在mouseup上触发的。但是,只有当鼠标光标停留在对象上时,mouseup才起作用。如果mouseup事件在光标离开对象时触发,它不会触发。Jquery draggable - 当光标离开对象时mouseup不会触发

即使光标已离开对象,某人可以帮助我找到触发mouseup的方法吗?任何帮助将非常感激。这里有一个演示:http://www.madfrogdesigns.com/vault/mouseup/

这是我的jQuery代码:

$(document).ready(function(){ 
    initCheckBoxes(); 
}); 

var slideSpeed = 200; 
var leftDist = 20; 

function initCheckBoxes() 
{ 
    $(".toggle-slider").draggable({containment: "parent"}); 
    $(".toggle-slider").mouseup(function(){ 

    //Toggle markers; 
    $(".content").fadeToggle(200); 

    var status = $(this).attr("toggle-status"); 

    switch(status) 
     { 
      case "0": 
      $(this).animate({left: leftDist}, slideSpeed); 
      $(this).attr("toggle-status", "1"); 
      break; 

      case "1": 
      $(this).animate({left: "0"}, slideSpeed); 
      $(this).attr("toggle-status", "0"); 
      break; 
     } 
    }); 
} 
+0

考虑使用从jquery ui的droppable方法中的drop事件 – 2012-04-25 17:36:39

回答

2

需要两个独立的事件如果发生在元件的外部鼠标松开,因为它不会从那里起源:

function initCheckBoxes() 
{ 
    $(".toggle-slider").draggable({containment: "parent"}); 

    var slideMouseDown = false; 

    $('.toggle-slider').mousedown(function() { 
     slideMouseDown = true; 
    }); 


    $(document).mouseup(function() { 

     if(slideMouseDown == true) 
     { 
     //Toggle markers; 
     $('.content').fadeToggle(200); 

     var sliderToggle = $('.toggle-slider'); 
     var status = sliderToggle.attr('toggle-status'); 

     switch(status) 
     { 
      case "0": 
      //its off, slide it by 20px; 
      sliderToggle.animate({left: leftDist}, slideSpeed); 
      //change status to 1 
      sliderToggle.attr("toggle-status", "1"); 
      break; 

      case "1": 
      //its 'on', slide it to 0px; 
      sliderToggle.animate({left: "0"}, slideSpeed); 
      //change status to 0 
      sliderToggle.attr("toggle-status", "0"); 
      break; 
     } 
     } 

     slideMouseDown = false; 
    }); 
} 
+0

感谢您的帮助infensus。不幸的是,这并不适合我。也许这是因为我没有正确更新我的现有代码。我怎样才能使用你的代码与我的相关? – Julesfrog 2012-04-25 18:01:50

+0

没有概率 - 请参阅编辑的回复 – 2012-04-25 18:18:19

+1

你是最好的infensus! – Julesfrog 2012-04-25 19:20:20

相关问题