【发布时间】:2015-06-15 15:36:47
【问题描述】:
这是对“重新排序列表元素 - jQuery?”问题的参考。已经问过here
现在我想更进一步。我想做的是,我只是想为电子商务建立一个比较产品项目。
所以,我在这里找到了重新排序列表项。 但是我想在每个名为“Left”和“Right”的列表项中添加两个按钮,尽管在这里我只显示了一个,即“Right”。单击“右”按钮时,“数据排序”值将更新为 +1,列表将向右移动,即在下一个位置,下一个定位的列表项将重新排序到它的前一个位置。简而言之,li 项目并排移动。
所以 HTML 如下:[刚刚添加了按钮]
<ul id="ulName">
<li data-sortby="1">three <a href="javascript:;" class="rGth" >Right</a></li>
<li data-sortby="2">one<a href="javascript:;" class="rGth" >Right</a> </li>
<li data-sortby="3">two<a href="javascript:;" class="rGth" >Right</a> </li>
<li data-sortby="4">four<a href="javascript:;" class="rGth" >Right</a> </li>
脚本是:
$(document).ready(function() {
var ul = $('ul#ulName'),
li = ul.children('li');
li.detach().sort(function(a,b) {
return $(a).data('sortby') - $(b).data('sortby');
});
ul.append(li);
$('.rGth').each(function(){
var thisli = $(this);
var parent = thisli.parent('li');
var right = parent.data('sortby') + 1;
var left = parent.data('sortby') - 1;
thisli.click(function(){
//alert(parent.data('sortby')+1);
alert(right);
alert(left);
parent.data('sortby', right);
parent.next().data('sortby',left);
});
});
});
但是我发现“data-”属性没有更新。 任何人都可以帮我解决我的问题吗?
我已经编辑了我的代码。它发出数据属性值的警报,但我看到它没有改变。我知道我做的一团糟。有人可以帮忙吗? 这是Fiddle
【问题讨论】:
-
在
button元素处重复id="rGth"属性?,在前两个li元素中?预期的结果是什么? -
似乎 jQuery 选择器无法获取 li 元素下的那些元素
-
谢谢阿尔文。我已经编辑了我的小提琴。我可以检索数据值,但我看到我的数据属性没有改变值。我还在做一个愚蠢的烂摊子。你能帮帮我吗?
标签: javascript jquery