我有一个预先编写的代码我想要改变它。我不明白问题是什么。 我想在更改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?
答案 0 :(得分:1)
使用var sortOrder = new Object();
初始化sortOrder。这必须在全局代码上完成,而不是在函数内部。
同时更改
if( currentPosition == sortOrder[html])
到
if (sortOrder[html] && currentPosition == sortOrder[html])
将在比较
之前检查是否定义了sortOrder[html]