Jquery拖动排序顺序在更改排序顺序时调用函数或API(需要帮助)

时间:2011-05-15 13:41:06

标签: jquery jquery-ui

我有一个预先编写的代码我想要改变它。我不明白问题是什么。 我想在更改li的排序顺序时调用API。这是代码:

  $(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();

    });

当我运行它时,它给了我这个错误“Uncaught ReferenceError:sortOrder未定义” 任何人都可以帮忙吗? 或者是他们解决这个问题的另一种方法:S?

1 个答案:

答案 0 :(得分:1)

使用var sortOrder = new Object();初始化sortOrder。这必须在全局代码上完成,而不是在函数内部。

同时更改

if( currentPosition == sortOrder[html])

if (sortOrder[html] && currentPosition == sortOrder[html])

将在比较

之前检查是否定义了sortOrder[html]