Функция Sortables (библиотека Mootools) - PullRequest
0 голосов
/ 27 июня 2011

У меня проблема при использовании функции 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 Ответ

0 голосов
/ 27 июня 2011

mootools 1,12?хех.

верно.так что в основном вы хотите, чтобы щелчок по раскрывающемуся списку не вызывал сортировку?это будет сложно, так как он использует делегированное событие для родителя, и он пузырится.Кроме того, сценарии событий click для выбора также ненадежны, поэтому вы не можете остановить надежное распространение события click - по крайней мере, в 1.12.1.3.2 хорошо.

рассмотрите возможность использования опции handles: "div.foo" в select, в результате чего это дочерний div, который позволяет им перемещать объекты в отличие от всего div.

http://jsfiddle.net/dimitar/uCM2R/4/

, очевидно, в дескриптор div.foo вы можете поместить несколько значков, обозначающих движение.только они будут действовать как точка перетаскивания для сортировки, что позволяет вам работать с выбранными без вмешательства.

здесь это в 1.3.2 согласно вашей исходной спецификации / разметке: http://jsfiddle.net/dimitar/uCM2R/6/

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

...