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

0

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

Теги:
gridster

2 ответа

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);
});

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

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню