jquery.ui 中sortable list 的定位問題

最近在做的ui遇到了這個問題。ui 大概長這樣:

使用者可以從左邊把element 拖曳到右邊的某個故事盒內。然後故事盒內的物件還可以透過拖曳重定順序。這個東西用了到jqury.ui 的sortable 功能。  故事盒的外層還用了一個div 包起來(overflow=scroll),來達到捲軸的效果。

不過後來發現,右邊的sortable list 在ie中(6,7) 會相對定位!! 也就是說當捲軸往下拉的時候,這些element 就跟著往下移動(畫面上看起來就像是固定在某個位置…) =.=  這怎麼會對呢? 後來trace 程式碼 發現在 ui.sortable.js(rev.5143)  中的第73行左右有一行長這樣:

if(!(/(relative|absolute|fixed)/).test(this.element.css('position'))) this.element.css('position', 'relative')

一般來說預設值是static(參考資料),所以嘛,你可以選擇註解掉,或是加上static 的判斷( 這樣跟註解掉有何不同XD)

這問題大概出在ie 跟 firefox/safari 對於position=relative這東東的解讀不同吧!

「jquery.ui 中sortable list 的定位問題」 有 2 則迴響

  1. 阿,謝謝你!這個問題我也是一直參不透。不只jQuery,prototype也有一樣的問題@@"

  2. hello Zero:

    唔,看來prototype 可能也是一樣的解法 😛

發表留言