jQuery Перетащите в выделенные поля - PullRequest
1 голос
/ 21 ноября 2010

У меня есть этот скрипт. Ну, я хотел, чтобы солдат был сброшен только на выделенные ящики. Я попытался принять: $ (селектор) и вернуть: «неверно», но кажется, что он не позволяет его удалять даже в невыделенных полях.

1 Ответ

0 голосов
/ 21 ноября 2010

Сначала отключите все droppables, затем во время процедуры запуска перетаскивания сделайте $('.cell .validmove') droppable и добавьте параметр revert: "invalid" к перетаскиваемому элементу, чтобы он возвращался назад, когда не помещен в действительную ячейку, если это то, что выхочу.Между прочим, вам, вероятно, было бы лучше, если бы у вас была подпрограмма в событии drag() под start() и возвращаться к stop(), так как событие drag() срабатывает непрерывно по мере вашего движения.

unit.draggable({
    start: function() {
        startGrid.addClass("validmove").droppable("option", "disabled", false);
    },
    stop: function() {
        startGrid.removeClass("validmove").droppable("option", "disabled", true);
    },
    cursor: "move",
    revert: "invalid"
});

Если вы хотите, чтобы блок привязывался к сетке, либо укажите его в параметрах сетки / привязки в draggable(), либо добавьте некоторый код в событие drop(), чтобы анимировать блок на месте.

NB.CSS не работает должным образом в Chrome, сетка не отображается, отлично работает в Firefox.

...