javascript - jQueryUI 可排序 - 复杂的选择器可能在 'items'

标签 javascript jquery-ui jquery-ui-sortable

我在使用 jQueryUI 的 sortable 函数时遇到问题:

    <div class="sortable">
        <div class="ui-state-default">
            <h4></h4>
            <input type="text" />
            <button></button>
        </div>
        ...more <div>
    </div>

我的目标不是能够对整个 div 进行排序,而只能对输入元素进行排序。这可能吗?

我已经尝试了很多东西,但没有任何效果......

$(".sortable").sortable({ items: "> input" });
$(".sortable").sortable({ items: "> input[type=text]" });
$(".sortable").sortable({ items: "> div > input" });
$(".sortable").sortable("option", 'items', 'div > input');

我已经用谷歌搜索了一个解决方案,但除了这个 similar question 什么也没找到,但我认为 .cancel() 函数不是我的解决方案。

有什么帮助吗?

最佳答案

您遇到的问题是输入框本身不能做成可拖动的 handle 。您需要将输入包装在 span 或 div 中,然后在 { items: } 标记中使用它。你还是不能自己拿起输入框,所以我强烈建议你在div中使用一个 handle 来拖动,这样操作起来更直观。

或者,您可以使用 { position: absolute; 添加一个隐藏的 div宽度:100%; height:100% } 在输入顶部作为句柄,但这会使您的输入不可编辑,因为点击会点击该 div 而不是您的输入。

关于javascript - jQueryUI 可排序 - 复杂的选择器可能在 'items',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915132/

相关文章:

jquery - 将 LI 从 UL A 拖到 UL B 并从 UL A 中删除?

javascript - IE9 JavaScript 数组初始化错误

javascript - 如何在 Canvas 上绘制线条 JS 动画

javascript - Mustache.js 在空格之间分割 HTML 属性

javascript - 以编程方式测试特定的 css 属性兼容性(调整文本区域的大小支持)

可使用 CSS3 动画排序的 jQuery UI

javascript - Xpath:如果子存在,如何在 xpath 中选择父注释的值

javascript - jquery UI 改变类

jQuery获取带有渐变的div的背景颜色

插入新对象时 Meteor 0.8.2 客户端集合为空