2011-09-26 62 views
2

我有一個文本區在它的div。主div是可拖動的,並且工作正常,但是我無法拖動div,同時點擊其中的textarea。有沒有辦法拖動div,即使我從div裏面的textarea中拖動它?Draggable Div中帶有textarea。拖動問題

這裏是如何使我的div拖動

$('.speech_bubble').draggable(
{ 
     containment: $('#dropHere') 

}); 

謝謝

回答

0

你可以嘗試創建在使用onmouseover事件textarea的屏幕(可見DIV),那麼如果用戶想要檢測通過雙擊事件刪除屏幕來編輯文本。

+0

我爲什麼要這樣做?不是一個好主意,不會更喜歡它作爲用戶。 – Pabuc

5

這是可拖動取消選項的原因。默認是':input,option',這意味着從textarea開始拖動將被取消。嘗試使用該選項。

+0

您的回覆後,我閱讀http://old.nabble.com/%27cancel%27-attribute-in-draggable%28%29-call-td16115681s27240.html,看到取消有一個錯誤。你認爲該設置取消:''會工作嗎? – Pabuc

+0

我認爲它可以工作,但使用textarea可能會有問題,例如文本選擇將不起作用。另一方面,你鏈接的bug報告是3歲,因爲很多jQuery UI版本都沒有。 – dioslaska

+0

我不需要選擇文字,我會嘗試這一個,讓你知道。謝謝 – Pabuc

1

嘗試添加以下樣式:

div { 
    padding-bottom:20px; 
} 

textarea { 
    width:100%; 
    height:100% 
} 

然後,您可以拖動textarea,而你拖累div標籤的底部。

0

我知道這是一個非常古老的問題,但我認爲最好回答我剛剛處理的確切問題(即不是創建一個新問題)。答案指的是dioslaska的解決方案,即通過在事件處理程序中的預期textarea上添加一個額外的.focus()調用(例如單擊)來清除cancel屬性。我在解決方案中使用了雙擊來區別於簡單移動我的對象。

選擇:

目前,它看起來像有一個bug(http://bugs.jqueryui.com/ticket/4986)。對於解決方法,在事件處理程序中使用destroy來禁用可拖動,並在blur()(或其他禁用事件處理程序)函數中重新創建可拖動。

+0

您正在引用_invalid_錯誤...它沒有被確認,因此從技術上講不是一個錯誤.. –