jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将新项添加到jquery可排序,而不是通过刷新获取大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在排序一个对象列表,其中一些是常规对象,其中一些是其他对象的容器.

使用句柄排序工作正常,除非我向容器添加新对象,刷新后无法识别.

我有以下HTML

<button>add another option</button>
<div class="con">
    <div class="ui-state-highlight"><span class="handle">handle</span> Item 1</div>
    <div class="ui-state-highlight"><span class="handle">handle</span> Item 2</div>
    <div class="ui-state-highlight"><span class="handle">handle</span> Item 3</div>
    <div class="subthing">
        <span class="handle">handle</span>
        <div>    <span class="handle">subhandle</span> subitem</div>
        <div>    <span class="handle">subhandle</span> subitem</div>
    </div>
</div>

和脚本:

$('button').click(function() {
    var x = $('<div class="ui-state-highlight"><span class="handle">handle</span> newthing</div>');
    x.appendTo('.con')
    $(".con").sortable('refresh')
});

var container = $(".con");
container.sortable({
    handle: container.children().children(".handle")
});

The Fiddle

如上面的代码所示,如​​果添加新项,则无法使用其余元素对其进行排序.我知道如果我说handle属性是.handle,它会这样做,但我不希望子句柄成为可排序的一部分.

解决方法

你需要的是:

container.sortable({
  handle: '> .handle'
});

看看这个:http://jsfiddle.net/hQsjD/

它是>只捕获直接.handle孩子的标志.

handle参数是一个字符串选择器而不是实际元素是很重要的,因为在调用refresh时它们不会刷新.

大佬总结

以上是大佬教程为你收集整理的将新项添加到jquery可排序,而不是通过刷新获取全部内容,希望文章能够帮你解决将新项添加到jquery可排序,而不是通过刷新获取所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。