我在项目中使用了gridster.net,而且我遇到了问题。
我试图让小工具在点击后按住鼠标一秒后才开始拖动。我正在使用下一个代码:
$(".gridster .gs-w").on('mousedown', function(e) {
gridsterObj.disable();
dragTimeout = setTimeout(function() {
gridsterObj.enable();
}, 500);
}).bind('mouseup mouseleave', function() {
clearTimeout(dragTimeout);
});
但它没有用。看来我必须调用开始拖动的功能,比如gridsterObj.on_start_drag.call(gridsterObj, e, ui);
,但我在哪里可以得到UI对象?它在gridster代码中到处使用,但我无法找到它创建的位置。
看来它是jquery UI对象。我该如何创建呢?
答案 0 :(得分:1)
您应该能够将UI对象引用为$.ui
或window.jQuery.ui
。
所以你的代码应该是这样的:
$(".gridster .gs-w").on('mousedown', function(e) {
gridsterObj.disable();
dragTimeout = setTimeout(function() {
gridsterObj.enable();
gridsterObj.on_start_drag.call(gridsterObj, $.ui);
}, 500);
}).bind('mouseup mouseleave', function() {
clearTimeout(dragTimeout);
});
答案 1 :(得分:0)
我已经用下一个代码结束了:
$(".gridster .gs-w").on('mousedown', function(e, data) {
var self = this;
if (!data || !data.start) {
gridsterObj.disable();
dragTimeout = setTimeout(function() {
gridsterObj.enable();
$(self).trigger(e, [{ start: true }]);
}, 500);
} else {
$(self).addClass('dragging');
}
}).bind('mouseup mouseleave', function() {
clearTimeout(dragTimeout);
});
有了这个,gridster在开始拖动之前有0.5秒的延迟。