Задержка перед перетаскиванием в gridster

Я использую 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);, но где я могу получить объект пользовательского интерфейса? Он используется везде в коде gridster, но я не могу найти, где он создан. Кажется, что это объект пользовательского интерфейса jquery. Как я могу его создать?


person LbISS    schedule 07.05.2014    source источник


Ответы (2)


Вы должны иметь возможность ссылаться на объект пользовательского интерфейса как $.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);
});
person Andrew Barefoot    schedule 07.05.2014
comment
Нет, мне нужен объект события jquery ui, а не глобальный объект jquery ui. - person LbISS; 08.05.2014

Я закончил со следующим кодом:

$(".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);
});

При этом у гридстера есть задержка 0,5 секунды перед началом перетаскивания.

person LbISS    schedule 08.05.2014