【问题标题】:jQuery and drop in tablejQuery并放入表格
【发布时间】:2010-09-07 10:33:25
【问题描述】:

我有以下代码。当表格为空时,需要附加到ti,但如果有行我需要insertBefore 我放置的行。但是仅在 TABLE 上检测到下降,即使我在 tr 上下降,跟踪也只显示表。

    $("#mytable TABLE, #mytable TABLE").droppable({
       drop: function(event, ui)
       {
        var target = $(event.target);
        var draggable = ui.draggable;

        trace(target[0].tagName) ;
       }
   });

【问题讨论】:

    标签: jquery drag-and-drop html-table


    【解决方案1】:

    我确信它可以被整理,但这里有一些似乎可行的方法:

    function dropRow(event, ui) {
        var target = $(event.target);
        var draggable = ui.draggable;
    
        var tr = $('<tr><td>' + draggable.text() + '</td></tr>');
        target.before(tr);
        tr.droppable({ drop: dropRow, greedy: true });    
    }
    
    function dropTable(event, ui) {
        var target = $(event.target);
        var draggable = ui.draggable;
    
        var tr = $('<tr><td>' + draggable.text() + '</td></tr>');
        target.append(tr);
        tr.droppable({ drop: dropRow, greedy: true });    
    }
    
    
    $("#mytable").droppable({
        drop: dropTable
    });​
    

    This question 可能相关 - 您的部分问题是将 'drop' 事件连接到尚不存在的元素(并且 'live' 也不处理 'drop')。

    【讨论】:

      【解决方案2】:

      我的错,问题是 TR 是被删除的那个,所以它们在初始化时不存在,这是只有表反应的理由。 所以我在页面中的所有 TR 上初始化了 drop(2 个表),所以当第一个表中的 TR 在第二个表中被删除时,它们会在另一个 TR 被删除时做出反应。

      但我需要找到一种最简洁的方法来初始化丢弃的 TR。不知道在每个新行的第二个表中重新初始化所有 TR 是否是一种好方法。

      【讨论】:

        猜你喜欢
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 2015-10-12
        • 2012-08-12
        • 2017-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多