2011-10-08 51 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

相關問題