У меня есть таблица и использование jquery drag and drop для обмена значениями каждого 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/
В скрипке вы можете увидеть, что число может быть заменено, я хочу, чтобы цвет фона также изменился (путем замены имени класса).
В вашей функции 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 здесь.