Сохраните экземпляр Drag
в MooTools Хранилище элементов , поэтому, когда флажок установлен, мы можем извлечь этот экземпляр и управлять им.
Drag.Move является расширением базового класса Drag , и если вы увидите документы, вы заметите, что в этой ситуации есть два метода:
Эти методы необходимо вызывать для объекта перетаскивания, который создается при вызове new Drag.Move(..)
, чтобы включить или отключить перетаскивание.
Итак, сначала создайте объект перетаскивания, как вы уже делаете:
var drag = new Drag.Move(e, {
...
});
, а затем сохраните ссылку на этот drag
объект в хранилище элементов для последующего поиска.
e.store('Drag', drag);
Здесь вы можете использовать любую нужную клавишу - я использовал "Drag"
.
Затем, позже, в функции проверки, извлеките объект перетаскивания и вызовите attach
или detach
для него в зависимости отсостояние флажка.
function check(elem) {
var drag = elem.retrieve('Drag'); // retrieve the instance we stored before
if(elem.checked) {
drag.detach(); // disable dragging
}
else {
drag.attach(); // enable dragging
}
}
См. ваш пример , измененный для работы с этимфлажок.
Если вы извлекаете элемент по идентификатору, вам не нужно использовать $$
, так как в идеале должен быть только элемент с этим идентификатором.$$("#dragable")
слишком избыточный и менее производительный.Вместо этого используйте document.id('dragable')
или $("dragable")
.