2011-05-15 17 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