gridDnD - это метод jqGrid, а не опция, которую вы можете использовать непосредственно в tableToGrid
.Поэтому вы должны переписать код примерно так:
tableToGrid("#table1");
tableToGrid("#table2");
$("#table1").jqGrid('gridDnD', {connectWith: "#table2"});
$("#table2").jqGrid('gridDnD', {connectWith: "#table1"});
См. демо .
ОБНОВЛЕНО : я проанализировал проблемус копированием строк при перетаскивании вместо перемещения .Кажется, проблема в совместимости jqGrid с jQuery UI, начиная с версии 1.8.13.Как вы можете увидеть на демонстрационную версию , которая использует jQuery UI 1.8.12, код работает правильно.
Я обнаружил, что строки grid.jqueryui.js кодируют (строки 11078-11079 jquery.jqGrid.src.js
)
var ids = $(ui.helper).attr("id");
$($t).jqGrid('delRowData',ids );
являются источником проблемы.ui.helper[0]
содержит пропущенную строку с пустым идентификатором , начиная с jQuery UI 1.8.13.
Если вы измените код на
var id = this.id;
$($t).jqGrid('delRowData',id);
, код будетработать как в новом пользовательском интерфейсе jQuery (протестирован с 1.8.16), так и в старом (1.8.12).См. Соответствующую демонстрацию здесь .
В настоящее время у меня нет времени для более точного анализа изменений между jQuery UI 1.8.12 и 1.8.13.Вероятно, есть ошибка в jQuery UI.Тем не менее, я опубликую свое предложение, описанное выше, как исправление на форуме trirand .Я думаю, будет хорошо иметь код jqGrid, в котором меньше проблем с совместимостью с различными версиями пользовательского интерфейса jQuery.