功能可排序(Mootools库)

时间:2011-06-27 10:14:07

标签: javascript select mootools sortables

使用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里面有SELECT标签。

问题是这些下拉列表在单击时不会丢失。单击只是属于父DIV元素,onStart函数启动。如何解决这个问题?

原型:http://jsfiddle.net/uCM2R/3/

1 个答案:

答案 0 :(得分:0)

mootools 1.12? HEH。

右。所以基本上你想要点击下拉菜单而不是触发排序?这将是棘手的,因为它在父级上使用委托事件并且它起泡。此外,在select上编写脚本点击事件也不可靠,因此您无法阻止click事件可靠传播 - 至少在1.12中。 1.3.2没问题。

考虑在select上使用handles: "div.foo"选项,这就是那个允许他们移动东西而不是整个div的子div。

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

显然在div.foo句柄中你可以放置一些表示移动的图标。只有它们才能作为排序的拖拽点,从而使您能够选择无干扰的选择。

根据您的原始规格/标记,它在1.3.2中:http://jsfiddle.net/dimitar/uCM2R/6/

为停止冒泡的选择添加了一个点击处理程序。