Jquery 从sortable()中获取toArray值
我很确定我在做一些愚蠢的事情,因为这似乎是一个非常基本的问题 我正在短列表中使用sortable(),并希望返回排序列表的ID数组。我的代码可以工作,我可以在函数中执行console.log来正确显示已排序的ID。但是,我一辈子都不知道如何让这个阵列在全球范围内使用 这是我的密码:Jquery 从sortable()中获取toArray值,jquery,arrays,jquery-ui,jquery-ui-sortable,Jquery,Arrays,Jquery Ui,Jquery Ui Sortable,我很确定我在做一些愚蠢的事情,因为这似乎是一个非常基本的问题 我正在短列表中使用sortable(),并希望返回排序列表的ID数组。我的代码可以工作,我可以在函数中执行console.log来正确显示已排序的ID。但是,我一辈子都不知道如何让这个阵列在全球范围内使用 这是我的密码: $(function() { var sortedGrades = []; $('#sortable').sortable({ //connectWith: '.sortable-
$(function() {
var sortedGrades = [];
$('#sortable').sortable({
//connectWith: '.sortable-list',
update: function(event, ui) {
var sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
},
create: function( event, ui ) {
var sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
}
});
$( "#sortable" ).disableSelection();
});
});
如果我使用sortedGrades=[]全局声明sortedGrades数组代码>,当我稍后尝试将该数组调用到另一个函数时,该数组为空。如果我不全局声明它,当我试图调用它时,它会错误为未定义
你知道我遗漏了什么吗?每次声明一个新的sortedGrades
变量时,重写你要声明的var
关键字,该变量仅在声明它的函数中可见
尝试:
$(function() {
var sortedGrades = [];
$('#sortable').sortable({
//connectWith: '.sortable-list',
update: function(event, ui) {
sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
},
create: function( event, ui ) {
sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
}
});
$( "#sortable" ).disableSelection();
});
每次重新声明一个新的sortedGrades
变量时,重写要重新声明的var
关键字,该变量仅在声明它的函数中可见
尝试:
$(function() {
var sortedGrades = [];
$('#sortable').sortable({
//connectWith: '.sortable-list',
update: function(event, ui) {
sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
},
create: function( event, ui ) {
sortedGrades = $(this).sortable('toArray');
console.log(sortedGrades);
}
});
$( "#sortable" ).disableSelection();
});
我已经把它修好了,不过如果有人能向我解释为什么这样做有效,我会很感兴趣
我将代码更改为:
$('#sortable').sortable({
update: function(event, ui) {
sortedGrades = $(this).sortable('toArray');
sortedGrades2 = sortedGrades ;
console.log(sortedGrades);
},
create: function( event, ui ) {
sortedGrades = $(this).sortable('toArray');
sortedGrades2 = sortedGrades ;
console.log(sortedGrades);
}
});
$( "#sortable" ).disableSelection();
});
});
(即,我添加了sortedGrades2=sortedGrades;
行)
然后我将sortedGrades2
调用到我的另一个函数中。我不明白为什么我要这么做,但它是有效的。目前,我认为这两个数组实际上都没有在任何地方声明。我已经修复了它,不过如果有人能向我解释为什么这样做是有效的,我会很感兴趣
我将代码更改为:
$('#sortable').sortable({
update: function(event, ui) {
sortedGrades = $(this).sortable('toArray');
sortedGrades2 = sortedGrades ;
console.log(sortedGrades);
},
create: function( event, ui ) {
sortedGrades = $(this).sortable('toArray');
sortedGrades2 = sortedGrades ;
console.log(sortedGrades);
}
});
$( "#sortable" ).disableSelection();
});
});
(即,我添加了sortedGrades2=sortedGrades;
行)
然后我将sortedGrades2
调用到我的另一个函数中。我不明白为什么我要这么做,但它是有效的。目前,我认为这两个数组实际上都没有在任何地方声明。谢谢。如果我这样做,当我在函数gradeSort(type,sortedGrades)中调用它时,sortedGrades仍然是未定义的代码>或者,如果我放置var sortedGrades=[]
在document.ready上,数组作为空数组发送到gradeSort函数。谢谢。如果我这样做,当我在函数gradeSort(type,sortedGrades)中调用它时,sortedGrades仍然是未定义的代码>或者,如果我放置var sortedGrades=[]
在document.ready上,数组作为空数组发送到gradeSort函数。