Функция 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/

добавлен обработчик кликов для выбора, который останавливает всплывание.

Другие вопросы по тегам