2011-10-08 72 views
1

我有多个元素是jQuery UI可拖动,这些元素也可以双击打开一个窗体对话框。jquery可拖动停止事件双击元素

问题是,当用户双击它们时,双击鼠标后按住鼠标,打开对话框并拖动元素,这导致元素被移动到对话框后面的所有位置而没有意识到它。

我需要能够停止拖动时,双击它完全删除可拖动的事件,并停止当前draggables。我曾尝试:

$(".items").draggable("option", "disabled", true); 

然后

$(".items").draggable("option", "disabled", false); 

在对话框关闭,但是这并不工作(它可能会停止创建新的可拖动事件的能力,但犯规终止当前的拖动

我。也见过一些人说拖延完全然后再读一次,但那不可能是解决方案,因为它的丑陋哈哈。

恼人的小问题,但它的导致我的系统出现问题,我无法在任何地方找到答案。

+0

http://jsfiddle.net/EN3MD/2/你可以在这里分享你的拖动设置? – zdrsh

+0

嗨我已经添加了代码,它并不像它在我的版本中那样容易,因为ajax调用更快。您必须快速双击,您仍然可以在窗体叠加时拖动可拖动。 –

回答

1

试试这个,在对话框打开时禁用draggin,并在关闭时启用。

$("#dialog").dialog({ 
     width: 150, 
     height: 175, 
     autoOpen: false, 
     draggable: false, 
     resizable: false, 
     modal: true, 
     title: 'Form', 

     open: function(event, ui) { 

      $('.draggable').draggable({ 
       cancel: '.draggable' 
      }); 
     }, 
     close: function(event, ui) { 

      $('.draggable').draggable({ 
       cancel: '' 
      }); 
     } 
    }); 

http://jsfiddle.net/EN3MD/22/

+0

工作过!谢谢 –

+0

很高兴听到:) – zdrsh