我遇到了 jQuery UI 条件的问题。
这是代码:
$(function() {
$("#draggable2").draggable({
snap: ".ui-widget-header",
snapMode: "inner",
revert: true
});
});
我的问题:
如何使用if 语句,以便我的可拖动项目在捕捉到我的ui-widget-header时不会恢复?
非常感谢 ;)
我遇到了 jQuery UI 条件的问题。
这是代码:
$(function() {
$("#draggable2").draggable({
snap: ".ui-widget-header",
snapMode: "inner",
revert: true
});
});
我的问题:
如何使用if 语句,以便我的可拖动项目在捕捉到我的ui-widget-header时不会恢复?
非常感谢 ;)
jQueryUI 确实保留了“捕捉”元素的内部“状态”,但您必须做一些工作才能做到这一点。
您将要为停止事件定义一个事件处理程序(当可拖动对象停止拖动时调用该事件处理程序)。
一个名为 snapElements 的数组保存在小部件数据中,它看起来像这样:
[
{
height: 102,
item: { /* DOM element */ },
left: 10,
snapping: false,
top: 10,
width: 102
}, ...
]
您真正想要的是这里的snapping
房产。捕捉将告诉您该项目当前是否“ snapping
”到可拖动的对象。
该snapElements
数组会针对每个事件进行更新,因此它在处理程序drag
中始终是最新的。drag
从那里,我们只需要draggable
使用 data() 从关联元素中获取小部件实例。
考虑到这个数组,我们可以编写这样的代码来确定它是否捕捉到目标:
$("#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 !!");
}
});
},
});
哦,我在网上找到了这个,希望对你有帮助。 还原函数回调。