javascript - 使用 jquery 拖放交换 draggable 的类名和 droppable on drop

标签 javascript jquery html css jquery-ui

我有表格并使用 jquery 拖放来交换每个 td 的值。我使用以下方法做到了这一点:

        $("#a tr td").draggable({
            appendTo: "body",
            helper: 'clone',
            cursor: "move",
            revert: "invalid"
        });


        $('#a tr td').droppable({
           accept: function(ui, item) {
           if($(this).html().trim().length != 0)
              return false;
       },

           drop:function (event, ui ) {
             $(this).append(ui.draggable.text());
             var draggableId = ui.draggable.attr("class");
             var droppableId = $(this).attr("class");
         $( "ui.draggable" ).switchClass( "draggableId", " droppableId");
        //$(this).switchClass( "droppableId", "draggableId");
             $(ui.draggable).empty();

       }
       });  `

但从上面我只能交换与 td 关联的值,但我希望与 TD 元素关联的类名发生变化。我试过 switchClass 但没有运气。请建议我实现此目标的方法。

演示:http://jsfiddle.net/ggbhat/BLJFp/3/

在 fiddle 中你可以看到数字可以交换,我希望背景颜色也改变(通过交换类名)。

最佳答案

在您的 drop 函数中,您可以像这样交换类属性:

drop: function (event, ui)
{
    var draggable      = $(ui.draggable)
      , droppable      = $(this)
      , draggableClass = draggable.attr('class')
      , droppableClass = droppable.attr('class');

    droppable.append(draggable.text());
    draggable.attr('class', droppableClass);
    droppable.attr('class', draggableClass);
    draggable.empty();
}

查看更新的 Fiddle here .

关于javascript - 使用 jquery 拖放交换 draggable 的类名和 droppable on drop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033523/

相关文章:

javascript - 添加在特定时间后、特定位置出现和消失的文本

javascript - jQuery,下一个,上一个,循环到第一个和最后一个

javascript - JqueryMobile中的水平滚动和垂直滚动

javascript - 如何通过将 AJAX 中的 <input type ="file"> 数据放入对象中来发送它?

javascript - React Native - 不变违规 - 试图获取超出范围索引的框架

javascript - Globalize.js E_DEFAULT_LOCALE_NOT_DEFINED 错误

javascript - 将按钮添加到可扩展的 div (javaScript)

php - 在 html 标签中使用 PHP 变量

javascript - 6 个子 DIV,一个容器 DIV,分成 3 对 2,左、中、右对齐

jquery - 检测标签并根据条件进行 css 更改