jQueryUI и проблема с сортируемыми событиями - PullRequest
1 голос
/ 27 декабря 2010

Я работаю с демонстрацией «Подключить через вкладки». Я немного изменил код. Я добавил класс 'foo' к элементам tabs-1 и tabs-2 . Я также добавил следующий скрипт:

$(".foo ul").sortable({
    stop: function (event, ui) {
            var tabId = $(this).attr('id');
            var elementIndex = ui.item.index();
            alert('tab id: ' + tabId + ' | element index: ' + elementIndex);
}});

Это прекрасно работает, когда я изменяю порядок сортировки элементов внутри той же вкладки, но у меня возникает проблема, когда я перетаскиваю элемент с первой вкладки на вторую вкладку (или наоборот), потому что элемент сначала помещается первая позиция в tab1 (tab id = sortable1, index элемента = 0), и после этого она перемещается на вторую вкладку в последней позиции. Проблема в том, что сортируемое событие не запускается во второй раз.

Я что-то упустил, но не знаю, что :)
Любая помощь будет принята с благодарностью.

Спасибо!

EDIT:

Демо можно найти по следующей ссылке: http://jqueryui.com/demos/sortable/#connect-lists-through-tabs

1 Ответ

1 голос
/ 24 июля 2011

Вы когда-нибудь находили ответ на это? Потому что в настоящее время у меня та же проблема - я пытаюсь ее решить разными способами, но пока безуспешно.

EDIT

Поцарапайте это, только что нашли то, что я считаю наиболее эффективным способом решения. Свяжите событие «DOMNodeInserted» с классом списка <ul>, который вы используете, и вы можете проверить элемент списка, выполнив поиск по его текущей позиции DOM:

$(".connectedSortable").bind("DOMNodeInserted", function() {
$('#tabs').find('li#staff-'+currentStaffId).each(function() {
listDeptID = $(this).parent().parent().attr('id');
listDeptID = listDeptID.split('-');
listDeptID = listDeptID[1];
....

В этом моем примере у меня есть элементы списка с идентификатором staff-x с идентификатором этого сотрудника, так что find возвращает один элемент массива и работает довольно эффективно.

НТН

Jester.

...