2011-12-15 41 views
2

我使用:奇水煤漿與使用jQuery可拖動和resizable使用jQuery 1.0.1碰撞

jQuery的1.6.2 jQuery的用戶界面 - 16年1月8日 碰撞1.0.1

...構建一個基於網絡的街區繪畫應用程序。我有一個可選擇單元格的表格。在這層之上是'跑馬燈'。當移動或調整選取框時,我希望下表中的重疊單元格應用特殊類,因此我開始使用碰撞1.0.1。

這似乎恰好有預期的效果,但是當你拖動選框,然後調整它 - 從上面,直到你再次拖動選框選框細胞下面不再反映碰撞。如果你創建一個新的選取框並調整它大小,那麼衝突就會被精確地計算出來,它只會在拖動後出錯。

有一個在 http://accessibledesign.net/block_painter/client/ 一個演示(只是在屏幕上拖動選取框)

細胞是黃色反映與上述字幕碰撞。

我已經做了廣泛的測試,可以確認的是,可調整大小的帳篷自己擁有所有正確的屬性,故障似乎在於與碰撞功能:

$("#grid td.ui-selected").removeClass("ui-selected"); 
hits = DATA.elems.curMarquee.collision($("#grid td.col")) 
hits.addClass("ui-selected"); 

此代碼對可調整大小的「停止」運行或可拖動 - 並在正確的時間觸發。

+0

您能否詳細說明如何複製該錯誤,會發生什麼,您期望發生什麼以及您所在的操作系統/瀏覽器?謝謝! – eruciform 2011-12-15 21:28:38

回答

2

這是jquery-ui-draggable-collision模塊中的錯誤,其實。或者更具體地說,它的設計目的不是爲了處理「可調整尺寸」 - 這將在未來的版本中出現。如果你不需要可拖動碰撞的東西,刪除它應該解決這個問題。

但是,如果你需要它,有一個解決方法了。只是打電話$("#target").collision(".obstacles")之前,這樣做:

$("#target").removeData("jqueryCollisionCoordinates") 
$("#target").removeData("jqueryUiDraggableCollisionRecentPosition") 
$(".obstacles").removeData("jqueryCollisionCoordinates") 
$(".obstacles").removeData("jqueryUiDraggableCollisionRecentPosition") 

,這將刪除所有的內部緩存它,這樣它重新計算從頭碰撞,而不是使用尚未更新以前的版本。

注意:如果你能在sourceforge page提交bug修復票,也請,並鏈接到這個網頁,我最終會修補它才能正常工作,你會得到當我做一個消息。歡迎您將網站添加到評論中,並且在我進行更改時,我會盡量記住用戶的使用情況。謝謝!

還要注意:也許它不應該需要這樣說,但是1.0.1版本後,不依賴於這個工作。也不要與這些內部元件的內容扯上關係,否則它可能會在未來版本中崩潰 - 它不是公共API。

+0

完成了!非常感謝 - 現在讓我們來看看例子:) – localgrr 2011-12-16 10:31:46