Используя подключенные сортируемые списки jQuery, как я могу предотвратить здесь 3 вызова ajax?

Использование jQuery 1.4 и jQueryUI 1.8

У меня есть структура таблицы с 3 столбцами, каждый из которых представляет собой «связанный» сортируемый список.

Я хотел бы отправить на свой сервер обновление AJAX, которое содержит информацию только для данного столбца (если какие-либо элементы были перемещены) и только для двух заданных столбцов, если элемент был перемещен между столбцами.

Поясню: если Список A, элемент 1 перемещается только на новую позицию в Списке A, у меня нет причин отправлять запрос на обновление любого порядка в списке, но Список A, который можно выполнить с помощью обратного вызова на update. Легкий.

Однако, если я перемещу список A, элемент 1 в список B, я хотел бы отправить как можно меньше запросов (1, возможно, 2) для обновления порядка для данные списки. Однако при использовании обратных вызовов receive и remove всегда вызывается update также.

Моей первой мыслью было использовать update и/или remove, найти исходный список и обновить оба. Но при первом вызове update это вызовет как минимум один дополнительный запрос ajax к серверу.

Если я использую только update и просто наблюдаю за ui.sender в обратном вызове, я все равно отправлю 2 запроса, потому что первое обновление срабатывает для списка, в котором теперь отсутствует элемент (я должен предположить, что это было только прибегал без ui.sender), а затем второе обновление срабатывало с ui.sender, где я обновлял бы старый и новый списки.

Я не могу не использовать update, иначе я пропущу элементы, которые перемещаются в своем собственном списке.

Как мне подойти к этому? Что я упустил из виду?


person anonymous coward    schedule 25.01.2011    source источник
comment
Та же проблема. Вы нашли решение? stackoverflow.com/questions/4890923 /   -  person balu    schedule 04.02.2011


Ответы (1)


Я потратил некоторое время на это и был разочарован, что здесь не было ответа!

Но в конце концов я понял это.

Он работает, проверяя родительский UL, чтобы увидеть, действительно ли элемент существует в списке, который он обновляет.

var sortorder = ui.item.index();

if(this.children[sortorder] != null 
&& this.children[sortorder].innerHTML == ui.item.context.innerHTML) //you could use an id here.
{
  // do stuff like update the sort order of the record in the database via ajax.
}

что не так с переполнением стека и кодовыми полями, состоящими только из одной строки? У кого-нибудь есть такая проблема?? Я использую IE6

Здоровья, Найджел.

person Fluent Newbie    schedule 22.02.2011