jQueryUI的不守「啪」的元素的內部「狀態」,但你要努力一點點地得到它。
您將要爲stop事件定義一個事件處理程序(當可拖動對象停止拖動時調用該事件處理程序)。
陣列稱爲snapElements保持在部件裏面的數據,它看起來是這樣的:
[
{
height: 102,
item: { /* DOM element */ },
left: 10,
snapping: false,
top: 10,
width: 102
}, ...
]
你真正尋找這裏是snapping
財產。捕捉將會告訴你該項目目前是否爲「snapping
」爲可拖動對象。
snapElements
陣列每更新一次drag
事件,所以它總是處於最新的drag
處理程序。從那裏,我們只需要使用data()從關聯元素中獲取draggable
小部件實例。
有了這個陣列中的一點,我們可以這樣寫代碼,以確定枯萎它捕捉到目標與否:
$("#draggable2").draggable({
snap: ".ui-widget-header",
snapMode: "inner",
revert: true
stop: function(event, ui) {
var draggable = $(this).data("draggable");
$.each(draggable.snapElements, function(index, element) {
if (element.snapping) {
//i can't quit figure out how to stop the reverting from here, but here's you condition.
console.log("Snapped !!");
}
});
},
});
哦,我發現這個在線希望這是有幫助的。 Revert Function callback.
* if * snaps * * when * it snaps。這是兩個非常不同的概念。 – rochal 2013-03-11 21:56:42
我有一個數組,所以我想如果我的物品在他的四個邊框上折斷,它不會恢復:)對不起,我的英語不好:/ – Alkatell 2013-03-11 21:59:33
如果它對齊,兩個元素的邊緣將在同一平面上。檢查一下。 – 2013-03-21 01:42:54