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

Использование 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, иначе я буду скучать по элементам, перемещенным в их собственном списке.

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

1 Ответ

0 голосов
/ 22 февраля 2011

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

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

Работает, проверяя родительский 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.
}

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

Ура, Найджел.

...