今天要處理sortable方法處理的對象,拖拽的時候,位置偏移的問題。css
按理應該是鼠標在哪,對象就跟着在哪的html
百度了一下問題,http://blog.csdn.net/samed/article/details/50703704,在這個博文裏面提到了this.scrollParent.scrollTop(),那麼對這個位置進行斷點調試。(固然最開始也嘗試了一下注釋了這個地方,並沒什麼用)jquery
在這個處理過程當中,我發現我得拖拽對象的scrollParent並非想象中的直接上級,而是不知上了多少級的父級(代碼中使用的是parents().filter(...)),可是又搞不太清楚爲何,由於代碼有一萬五左右行數,看是看不完的,都想放棄了,由於坑爹的是調試的時候,會一直跳到jquery.js中,大概是調試方法尚未很好掌握,沒辦法定住調控。(在這之中,也嘗試了把一些樣式去除掉看看,結果比較坑,去除掉一些樣式的對象是能夠正常使用的,那麼結論確定是和樣式有關。)api
不過由於在錯誤頁面上,能看到,拖拽對象是top值少了一截,確定是和parent.top有關,既然如此,那麼就先仔細看看scrollParent究竟是如何獲得的。ui
API中介紹最近的可滾動祖先,那麼是否是將直接父級指定爲scrollParent就能夠了,怎麼讓div內容超出後自動顯示滾動條:只須要用到css的一個overflow:auto的屬性就能夠實現這效果了。this
那麼就是說在直接父級上加了樣式spa
<td class="ui-sortable" style="overflow: auto;">...</td>
結果,拖拽正常。.net