Функция Sortables (библиотека Mootools)
У меня проблема при использовании функции Sortables() (библиотека Mootools).
this.sort=new Sortables(this.box,{
onStart: function(el){el.setStyles({'background':'#f0f0f0','opacity':1});},
onComplete: function(el){el.setStyle('background','none');this.setEditor();}.bind(this)
});
На самом деле, у меня есть DIV, который содержит другие блоки DIV, которые должны быть отсортированы. И DIV 2-го уровня имеют теги SELECT внутри.
Проблема в том, что эти выпадающие списки не выпадают при нажатии. Щелчок просто выпадает на родительский элемент DIV, и запускаются функции onStart. Как можно решить эту проблему?
Прототип: http://jsfiddle.net/uCM2R/3/
1 ответ
mootools 1.12 хе.
право. так в основном вы хотите, чтобы щелчок по раскрывающемуся списку не вызывал сортировку? это будет сложно, так как он использует делегированное событие для родителя, и он пузырится. Кроме того, сценарии событий click для выбора также ненадежны, поэтому вы не можете остановить надежное распространение события click - по крайней мере, в 1.12. 1.3.2 в порядке.
рассмотреть возможность использования handles: "div.foo"
опция выбора, при которой это дочерний элемент div, который позволяет им перемещать объекты в отличие от всего элемента div.
http://jsfiddle.net/dimitar/uCM2R/4/
очевидно, в div.foo
На ручке можно поставить несколько значков, обозначающих движение. только они будут действовать как точка перетаскивания для сортировки, что позволяет вам работать с выбранными без вмешательства.
здесь это в 1.3.2 согласно вашей оригинальной спецификации / разметке: http://jsfiddle.net/dimitar/uCM2R/6/
добавлен обработчик кликов для выбора, который останавливает всплывание.