jQuery UI-可排序:通过可排序元素中的图标“句柄”拖动


75

我的jQuery ui sortables工作正常,但我的sortable元素中还有其他交互式元素。为了防止在与可排序div中的元素进行交互时意外排序,我想以某种方式使可排序对象的拖动运动仅在拖动可排序对象中的某个元素时发生,例如可能驻留的“移动”图标在每个可排序对象的左上角。通用jqui是否有可能,还是我需要编写自己的钩子?

Answers:


158

插件的选项句柄允许您定义可以启动排序的元素。您可以提供选择器或元素。

如果您有这个html,请使用.handler来开始排序:

<ul class="sortable">
    <li>
        <span class="handle"></span>
        My element
    </li>
</ul>

应用如下选项:

$( ".sortable" ).sortable({ handle: '.handle' });

您可以根据需要设置手柄元素的样式。


4
OMG不能相信我没有在文档中看到可排序的内容,但是在OPTIONS部分中是正确的……
Rimer

嗯,似乎在IE7中(IE9中的怪癖模式),它不起作用:(。句柄不起作用,由于它仅限于句柄,因此现在在IE7中禁用排序:(。在FF中起作用, IE9,Chrome浏览器…
Rimer

这是jquery 1.7和jq ui 1.8
Rimer

如果我没记错的话,我曾经遇到过类似的问题。我设法在bug票证中应用了一种变通方法presenter,但我认为它已在最新的jquery ui 1.8.16中得到修复。也许没有关系,但是要找出这些问题很棘手。
Didier Ghys

2
@RohitSengar。handle属性接受选择器。我想您可以像{ handle: '.handle1, .handle2' }选择多个元素那样编写类似的内容。试试看。
Didier Ghys
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.