jquery ui:draggable - >如果拖动unbind悬停事件?

时间:2010-06-04 12:27:37

标签: jquery jquery-ui draggable

我有一个相当奇怪的问题,应该修复我当前项目中的错误。我正在使用随机放置在网页上的很多缩略图。所有的拇指都有绝对的位置。 这个大拇指对jquery设置的悬停做出反应:

$(".thumb").hover(
  function () {
    $(this).stop().animate({"height": full}, "fast");
    $(this).css('z-index', z);
    z++;        
  },
  function () {
    $(this).stop().animate({"height": small}, "fast");
  }

所以在悬停时他们会调整到特定的高度。 此外,所有这些拇指都可以通过jquery ui-draggable插件拖动。

我想知道如果当前拖动拇指,是否可以UNBIND悬停这些拇指!

$( ".thumb" ).bind( "dragstart", function() {
      //$(this).draggable( "disable" );
      $(this).unbind('mouseenter mouseleave');
    });
    $( ".thumb" ).bind( "dragstop", function() {
        //$(this).draggable( "enable" );
        $(this).bind('mouseenter mouseleave');
    });

此刻不行。如果我正在拖动拇指,我只想禁用悬停事件。在拖尾上,悬停应该再次起作用。

知道我怎么解决这个问题?谢谢

2 个答案:

答案 0 :(得分:1)

mousedownmouseup

$( ".thumb" ).bind( "mousedown", function() {
  //$(this).draggable( "disable" );
  $(this).unbind('mouseenter mouseleave');
});
$( ".thumb" ).bind( "mouseup", function() {
    //$(this).draggable( "enable" );
    $(this).bind('mouseenter mouseleave');
});

虽然我不确定你解除束缚的目的。可能还有另一种方式。无论如何,mousedownmouseup应该触发拖动的开始和停止。

请记住,如果用户执行正常click,处理程序每​​次都会被绑定和解除绑定。

答案 1 :(得分:0)

目的是如果我将缩略图快速拖动到另一个缩略图上,鼠标将离开当前缩略图并触发另一个缩略图的悬停。这实际上是一种相当错误的效果。所以我想知道我怎么能解决这个问题!

我的网站的用户界面的工作方式如下:如果我翻转缩略图,它会在顶部分层(z-index ++),缩略图会变得更大一些,并且可以拖动。所以目前如果在我的网页上随机地放置10个拇指并且我将它们拖得很快就能正常工作但不知何故感觉有点儿马车,因为如果我拖动图像的速度太快,拖动的图像就不会跟随鼠标的速度 - 因此会触发悬停。因此,除了当前拖动的拇指之外,我想要从所有拇指禁用一切设置jquery(悬停事件和拖动的能力)。听起来很复杂我知道! ;)也许有人得到它!