【问题标题】:How do I swap ID's using jQuery UI (Sortable)?如何使用 jQuery UI (Sortable) 交换 ID?
【发布时间】:2013-05-23 15:04:37
【问题描述】:

据我了解,当您使用 jQuery Sortable 时,实际的列表项 (li) 会在 HTML 代码中重新排列。我想做的是创造排序的错觉,但只是移动图像名称(也许这可能需要交换 ID)。我已经设置了一个 Fiddle 来说明我的示例(在此示例中,列表项是可排序的,但 ID 和选定的项与它一起使用,我希望这些保持它们的顺序):

JS 小提琴: http://jsfiddle.net/7QFB7/

除了图像名称之外,使所有内容保持相同顺序的最佳方法是什么?我需要更改列表项和选择框的 ID 以及输入的名称,以便即使重新排列它们,在技术上唯一会移动的项目是图像名称。所以最终的结果可能是这样的:

    <li id="thumb-1"><select id="image1"></select><input name="image1_path" value="imagename3.jpg"></li>

请注意,在上面的代码行中,所有名称和 id 都有 1,但图像名称有 3。这就是我想要实现的目标。

谢谢。

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-sortable


    【解决方案1】:

    可以这样做:

    DEMO

    stop: function (event, ui) {
            ui.item.removeClass('dragging');
            $(this).find('li').each(function(i){
                var index = i+1,
                    select =  $(this).find('select')[0];
               select.id = "image"+index;
                select.value = index;
            });
        }
    

    【讨论】:

    • 我添加了几行以获得所需的结果,但您引导我走上了正确的道路。谢谢。
    • 你能告诉我为什么我得到Uncaught TypeError: Cannot set property 'id' of undefined - 它指的是你的代码的select.id = "image" + index;,谢谢。
    • 这意味着 $(this).find('select')[0] 返回空对象。如果没有看到您的代码,我无法为您提供更多帮助。
    猜你喜欢
    • 2017-07-29
    • 2011-07-26
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多