是否可以延迟 jQuery UI 拖放插件的初始化,直到进行移动或单击?不确定这是否可能。我有大量使用拖放的单元格,比如 Excel 网格,性能不是很好。
问问题
381 次
2 回答
0
$( ".selector" ).draggable({ delay: 300 });
$( ".selector" ).draggable({ distance: 10 });
从 API 文档:
鼠标按下后的延迟
时间(以毫秒为单位),直到开始拖动。此选项可用于防止单击元素时出现不必要的拖动。距离
鼠标按下后鼠标必须在开始拖动之前移动的距离(以像素为单位)。此选项可用于防止单击元素时出现不必要的拖动。
更新:
要保持更标准的功能并仅在需要时初始化可拖动,请尝试使用悬停功能,如下所示:
$('div').hover(function () {
$(this).addClass('selector');
$(".selector").draggable({
//options
});
},
function () {
$('div').removeClass('selector');
});
于 2013-07-27T17:54:34.133 回答
0
我走了这条路,它似乎奏效了。
$.fn.liveDraggable = function (opts) {
this.one("mouseover", function () {
if (!$(this).data("init")) {
$(this).data("init", true).draggable(opts);
}
});
return this;
};
于 2013-07-27T19:03:09.653 回答