首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jQuery实现元素顺序转换的优化方法

用jQuery实现元素顺序转换的优化方法
EN

Stack Overflow用户
提问于 2011-10-24 22:58:22
回答 1查看 1.9K关注 0票数 3

假设有以下情况:

代码语言:javascript
复制
<a id="moveElementUp">Move Up</a>
<a id="moveElementDown">Move Dowm</a>

<div id="elementHolder">
    <a id="element-1">1</a>
    <a id="element-2">2</a>
    <a id="element-3">3</a>
    <a id="element-4">4</a>
</div>

<script type="text/javascript">
    function reOrder (el){
        // Change IDs of Elements to be Sequential
    }
    $('#moveElementUp').click(function(e){
        // Move Clicked Element Up One Spot in List

        reOrder();
    });
    $('#moveElementDown').click(function(e){
        // Move Clicked Element Down One Spot in List

        reOrder();
    });
</script>

使用jQuery更改元素的顺序和所有元素的ID以保持顺序顺序的最佳(也是最快的)方法是什么?

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-24 23:21:57

这将允许您随意重新排列项目。但是,它将删除锚定标记之间的空格。您可以通过在锚标记之间添加空格(就像我在这里所做的那样:http://jsfiddle.net/FqwDc/1/ )或者使用嵌套的did来解决这个问题。

代码语言:javascript
复制
var $sel; // anchor last clicked on
var prefixstr = "element-";

$('a[id^="'+prefixstr+'"]').click(function(e) {
    $sel = $(this);
});
$('#moveElementUp').click(function(e) {
    // Move Clicked Element Up One Spot in List
    $sel.prev().before($sel);
    changeIDs($('#elementHolder'));
});
$('#moveElementDown').click(function(e) {
    // Move Clicked Element Down One Spot in List
    $sel.next().after($sel);
    changeIDs($('#elementHolder'));
});

function changeIDs($j) { // renumber the IDs
    $j.children('a').each(function(i) {
        $(this).attr('id',prefixstr+i);
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7877619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档