【问题标题】:Move down row in html table Jquery在html表Jquery中向下移动行
【发布时间】:2014-03-07 13:50:52
【问题描述】:

有一个表格,用户可以在其中选择多行,下面有两个按钮“向上”和“向下”。如果用户点击“下”,选中的行应该下移一行,“上”也是一样,选中的行应该上移一行,用户可以选择任意行。

下面是我的 jQuery 代码。

对于“下”

$(".moveDown").live("click", function(){
    var row = $("#pageDefTable .selectRow");

    row.each(function() {
        var $this=$(this);
        $this.insertAfter($this.next());
    });     

    return false;
});

对于“向上”

$(".moveUp").live("click", function() {
    var row = $("#pageDefTable .selectRow");

    row.each(function() {
        var $this=$(this);
        $this.insertBefore($this.prev());
    });

    return false;
});

但它不能正常工作。当我选择最上面的两行并单击向下时,它不起作用。 同样的,如果我选择最后两行并单击它不起作用。

您的建议和帮助将不胜感激。

您好 Damian,您提供的解决方案在正常情况下运行良好。我还有一个案例..我在下面解释, 有两个表说左和右>用户可以从左表(id = metricTable)中选择任何行,并且可以移动到右表(id = pageDefTable),它最后附加在表中,也显示为右侧的选定行表。

下面是从左表到右表选择任意行的代码

        $("#center .move-row").live("click", function() {
            var tr = $("#metricTable .selectRow").remove().clone();
            $("#pageDefTable tbody").append(tr);
        return false;
        });

右表是具有上移和下移功能的表,在将任何行从左移到右表之后,然后单击上移按钮,它不会移动行,当我第二次单击它时消失。

请任何帮助和建议???

【问题讨论】:

  • 向我们展示您的 html 代码

标签: javascript jquery


【解决方案1】:

我没有看到 moveUp 的问题。在 moveDown 中,您需要颠倒项目的顺序:

$($('tr.selected').get().reverse()).each(function () {
    if ($(this).next()) {
        $(this).insertAfter($(this).next());   
    }
})

jsfiddle

【讨论】:

  • 我更新了带有停止条件的示例,不循环选择已经在顶部或底部的元素 -> jsfiddle.net/7h5qy/4
  • 嗨 Damian,您提供的上述解决方案在正常情况下工作正常。我还有一个案例..我在下面解释,有两个面板说左右,两个面板都有桌子。用户可以从左侧选择任意行并可以移动到右侧面板
  • 你能提供一些jsfiddle吗?
  • 我已经编辑了我原来的问题,包括我的担忧
  • 这里是 jsfiddle,但我很惊讶,它正在工作...jsfiddle.net/kdhj4/1,但相同的代码在应用程序中不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2022-08-16
  • 1970-01-01
相关资源
最近更新 更多