2011-05-15 63 views
0

我有一个预先编写的代码,我想对其进行更改。我不明白问题是什么。 我想在更改li的排序顺序时调用API。下面是代码:Jquery Drag排序顺序在更改排序顺序(需要帮助)时调用函数或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(); 

    }); 

当我运行这个它给了我这个错误“未捕获的ReferenceError:中将sortOrder没有定义” 任何一个可以帮助? 或者是他们解决这个问题的另一种方法:S?

+0

好之前定义的变量 “中将sortOrder” 似乎并没有被定义,所以错误并不奇怪。你认为“sortOrder”是什么? – Pointy 2011-05-15 13:51:36

+0

我的目标是在李的排序顺序是改变时调用Fucntion/API。如果我拖动li和dint更改排序顺序,它不应该调用API /函数。我应该在代码中设置sortOder?我做了_var sortOrder ='0'; _停止错误,但不要调用API。那我应该在哪里调用它? – 2011-05-15 13:56:22

回答

1

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

而且改变

if(currentPosition == sortOrder[html]) 

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

这将检查是否sortOrder[html]是比较

+0

谢谢..作品:) – 2011-05-17 06:15:14