Jquery Перетаскивает порядок сортировки, вызывая функцию или API при изменении порядка сортировки (нужна помощь)

#jquery #jquery-ui

#jquery #jquery-пользовательский интерфейс

Вопрос:

У меня есть предварительно написанный код, который я хочу изменить. Я не понимаю, в чем проблема. Я хочу вызывать API при изменении порядка сортировки li. Вот код:

   $(function() {
    $("#sortable").sortable({
    revert:true
    });

    $( "#dragable" ). draggable({
    connectToSortable: "#sortable",
    helper: "clone",
    revert:"invalid"
    });

       $("#sortable").bind( "sortstop", function (event, ui){

       var currentItem = ui.item;
       var currentPosition = $('#sortable li').index(currentItem) ;
       var callApi = true;
       var Id = currentItem[0].id;
       var html = Id.split('_')[1];
       if( currentPosition == sortOrder[html])
         {

        callApi=false;

            }
           sortOrder[html] = currentPosition;


          if(callApi)
          {

           buyer=new BHBuyer();
           buyer.updateSortOrder(html,currentPosition);
           }

    });


    $("ul, li").disableSelection();

    });
  

Когда я запускаю это, это выдает мне такую ошибку «Неперехваченная ошибка ссылки: сортировщик не определен»
Кто-нибудь может помочь?
Или есть какой-либо альтернативный способ исправить это: S?

Комментарии:

1. Что ж, переменная «SortOrder», похоже, не определена, поэтому ошибка неудивительна. Каким, по-вашему, должен быть «SortOrder»?

2. ну, моя цель — вызвать функцию / API при изменении порядка сортировки в Li. если я перетащу li и не изменю порядок сортировки, это не должно вызывать API / функцию. где я должен установить sortOder в коде? я сделал var SortOrder = ‘0’; это останавливает ошибку, но не вызывает API. где я должен это вызвать тогда?

Ответ №1:

Инициализируйте SortOrder с помощью var sortOrder = new Object(); . Это должно быть сделано в глобальном коде, а не внутри функции.

Также измените

 if( currentPosition == sortOrder[html])
  

Для

 if (sortOrder[html] amp;amp; currentPosition == sortOrder[html])
  

который проверит, определено ли sortOrder[html] перед сравнением