【问题标题】:Custom index in jQuery sortablejQuery可排序中的自定义索引
【发布时间】:2016-03-02 19:22:26
【问题描述】:

我使用 jQuery sortable 库创建了可排序的项目列表。

HTML:

<ul id="sortable">
    <li id="item1" data-index="1">Item 1</li>
    <li id="item2" data-index="2">Item 2</li>
    <li id="item3" data-index="3">Item 3</li>
    <li id="item4" data-index="4">Item 4</li>
    <li id="item5" data-index="5">Item 5</li>
</ul>

JS:

(function($) {
    $('#sortable').sortable({
        stop: function(e, ui) {
            console.log(ui.item.index()); // Returns 0,1,2 etc
        }
    });
})(jQuery);

如何使用li 标签的data-index 属性作为自定义索引?

它应该打印自定义的index 值而不是它自己的index 值,即0,1,2 等。

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-plugins jquery-ui-sortable


    【解决方案1】:

    Working fiddle

    您可以使用$(ui.item).data('index') 查看以下示例:

    (function($) {
      $('#sortable').sortable({
        stop: function(e, ui) {
          console.log($(ui.item).data('index')); // Returns 0,1,2 etc
        }
      });
    })(jQuery);
    

    希望这会有所帮助。


    (function($) {
      $('#sortable').sortable({
        stop: function(e, ui) {
          alert($(ui.item).data('index')); // Returns 0,1,2 etc
        }
      });
    })(jQuery);
    #sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
    #sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; cursor:move; }
    #sortable li span { position: absolute; margin-left: -1.3em; }
    #sortable li.fixed{cursor:default; color:#959595; opacity:0.5;}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
    <link href="http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css" rel="stylesheet"/>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" rel="stylesheet"/>
    <script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/jquery.bgiframe-2.1.2.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/i18n/jquery-ui-i18n.min.js"></script>
    
    <ul id="sortable">
        <li id="item1" data-index="111">Item 1</li>
        <li id="item2" data-index="222">Item 2</li>
        <li id="item3" data-index="333">Item 3</li>
        <li id="item4" data-index="444">Item 4</li>
        <li id="item5" data-index="555">Item 5</li>
    </ul>

    【讨论】:

    • 在这里查看jsfiddle.net/HgDZ9/333。它返回特定项目的索引值 0、1、2 等。我需要的是最初为每个项目固定的索引值,如 Item1-4(index)、Item2-6(index)、Item3-9(index) 等。当我对第 1 项和第 2 项进行排序时,它应该像这样返回。 Item2-4(索引)和 Item1-6(索引)。有没有可能实现?
    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 2017-06-16
    • 2021-04-08
    • 1970-01-01
    • 2016-05-26
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多