我正在開發我的第一個JQuery項目,並且遇到了一些障礙。我試圖允許拖放&刪除重新排序的一組嵌套列表(ul)。除了定位之外,一切都在起作用。目標是相對於光標垂直居中拖動(水平移動被限制),因此可以容易地將嵌有元素的li放置。下面是相關的JS:Jquery Draggable - 垂直中心的遊標
$(function() {
$(".organizerlink").draggable({ axis: "y",
containment:"#organizer",
scroll: false ,
helper: "original",
revert: "invalid",
cursorAt: { top: Math.round($(this).outerHeight()/2)}
});
和HTML:
<ul id="organizer">
<li class="organizerTarget"> </li>
<li class="organizerlink" id="dbid-1">Page
<ul><li class="organizerTarget organizerNewParent"> </li></ul>
</li>
<li class="organizerTarget"> </li>
<li class="organizerlink" id="dbid-2">About
<ul>
<li class='organizerTarget'> </li>
<li class='organizerlink' id="dbid-3">Another Page<ul><li class="organizerTarget organizerNewParent"> </li></ul></li>
<li class='organizerTarget'> </li>
<li class='organizerlink' id="dbid-4">Example<ul><li class="organizerTarget organizerNewParent"> </li></ul></li>
</ul>
</li>
<li class="organizerTarget"> </li>
<li class="organizerlink" id="dbid-27">Stuff
<ul><li class="organizerTarget organizerNewParent"> </li></ul>
</li>
一些東西,我已經嘗試過:
- 設置cursorAt爲$(本).height( ) - 沒有工作,我猜高度()拉動CSS高度,但他們沒有明確定義,所以它跳轉到0
- 將其設置爲outerHeight()給我一個錯誤「elem.style是不確定的」螢火蟲
我知道outerHeight元素jQuery的存在,並基於API doc它會出現,它可以自動計算,即使CSS是未定義的,所以我認爲這是正確的方向,也許$(this)只是錯誤的地方尋找它。
寬容:「指針」下droppable函數爲我提供了一個體面的解決方法。 – Sam 2011-04-21 23:42:05