2011-05-15 5 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(); 

    }); 

가 나에게이 오류 "있는 sortOrder 정의되지 않은 catch되지 않은 ReferenceError가"를 준 : 다음 코드는? 또는이 문제를 해결할 수있는 대체 방법은 무엇입니까? S?

+0

음을 비교하기 전에 정의되어 있는지 확인 할

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

에이 변수 "있는 sortOrder는"정의하지 않는 것으로 변경 때문에, 오류는 놀라운 일이 아닙니다. "sortOrder"는 무엇을 기대합니까? – Pointy

+0

Li의 정렬 순서가 변경 일 때 내 목표는 Fucntion/API를 호출하는 것입니다. li을 드래그하여 dint가 정렬 순서를 변경하면 API/함수를 호출해서는 안됩니다. 어디 코드에서 sortOder 설정해야합니까? 나는 _var sortOrder = '0'; _ 오류를 중지하지만 API를 호출하지 마십시오. 내가 어디에서 부를 까? –

답변

1

var sortOrder = new Object();으로 sortOrder를 초기화하십시오. 이 작업은 함수 내부가 아니라 전역 코드에서 수행해야합니다.

또한

if(currentPosition == sortOrder[html]) 

sortOrder[html]

+0

감사합니다 .. 작품 :) –