gpt4 book ai didi

javascript - 将顺序设置为 jquery 可排序

转载 作者:行者123 更新时间:2023-11-30 08:57:52 24 4
gpt4 key购买 nike

我对无序列表 (ul) 使用 jquery draggble 函数,并面临在项目更改后获取项目顺序并设置页面加载顺序的问题。假设我们有以下代码:

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js> </script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$('.secondblock').sortable({axis:'y'});

$(".block").sortable({
axis: 'y',
update: function(event, ui) {// order changed
var order = jQuery(this).sortable('toArray');
// set this order to .secondblock

}
});
});
</script>

</head>
<body>
<ul class="block" type="none">
<li id = "one">1</li>
<li id = "two">2</li>
<li id = "three">3</li>
<li id = "four">4</li>
<li id = "five">5</li>
</ul>
<ul class="secondblock" type="none">
<li id = "one">1</li>
<li id = "two">2</li>
<li id = "three">3</li>
<li id = "four">4</li>
<li id = "five">5</li>
</ul>
</body>

有没有可能的解决方案?

最佳答案

首先,同一个 ID 不应在文档中出现两次。那会引起各种各样的问题。

相反,为第二个列表中的项目设置数据属性以反射(reflect)第一个列表中的相应项目:

<ul class="block" type="none">
<li id = "one">1</li>
<li id = "two">2</li>
<li id = "three">3</li>
<li id = "four">4</li>
<li id = "five">5</li>
</ul>
<ul class="secondblock" type="none">
<li data-block-id = "one">1</li>
<li data-block-id = "two">2</li>
<li data-block-id = "three">3</li>
<li data-block-id = "four">4</li>
<li data-block-id = "five">5</li>
</ul>

然后在第二个列表中反射(reflect)第一个列表的排序很简单:

$('.block').sortable({update: sortOtherList});

function sortOtherList(){
$('.block li').each(function(){
$('.secondblock [data-block-id=' + $(this).attr('id') + ']')
.remove()
.appendTo($('.secondblock'));

});
}

在这里查看它的工作情况:http://jsfiddle.net/6HKZG/2/

关于javascript - 将顺序设置为 jquery 可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com