2013-08-06 74 views
2

我是很新的JavaScript和jQuery和希望你能幫助我與我的問題。jQuery的下降格但只使用最高

我想在幾個較小的TR下降一個div並獲得最高的一個由格覆蓋。 但似乎jQuery在div的中心選擇了tr。

有沒有做到這一點,而無需使用div的高度來計算頂部TR一個更簡單的方式,這是覆蓋?

也許我真的做錯了或失去了一些東西。

HTML:

<table border="1"> 
    <tr> 
     <td class="droppable" data-time="08:00:00" style="width: 30px;"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="09:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="10:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="11:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="12:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="13:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="14:00:00"></td> 
    </tr> 
    <tr> 
     <td class="droppable" data-time="15:00:00"></td> 
    </tr> 
</table> 
<div class="draggable" style="width: 30px; height: 100px; background: green;"></div> 

JQuery的:

$(function() { 
    $(".draggable").draggable({ 
    }); 
    $(".droppable").droppable({ 
     drop: function (event, ui) { 
      $(this).effect("highlight", {}, 1500); 
     } 
    }); 
}); 

由於jsfiddle

提前感謝!

回答

0

API文檔可能很有用: http://api.jqueryui.com/droppable/#option-tolerance有幾種方法可以通過給定的屬性和方法來編碼想要的行爲。

示例:將容忍 「觸摸」。使用對象的位置和偏移數據來選擇適當的元素進行高亮顯示。

+0

謝謝!用「觸摸」試驗了一下,它似乎工作 – Rikan

1

我編輯你的小提琴

$(function() { 
var dropped = false; 
$(".draggable").draggable({ 
}); 
$(".droppable").droppable({ 
    tolerance: 'touch', 
    drop: function (event, ui) { 
     if(false === dropped) { 
      $(this).effect("highlight", {}, 1500); 
      dropped = true; 
     } 
    }, 
    activate: function(event,ui){ 
     dropped = false; 
    } 
}); 

});

小提琴這裏:http://jsfiddle.net/4L3Lf/

問題就來了從降功能(使用公差觸摸時)被解僱了許多時間TR被覆蓋的事實。