jQuery可排序代码的行为与我预期的不一样
我使用jQuery允许在两个列表之间进行拖放,但没有得到我所期望的行为 每个列表都有两对ID,分别是jQuery可排序代码的行为与我预期的不一样,jquery,Jquery,我使用jQuery允许在两个列表之间进行拖放,但没有得到我所期望的行为 每个列表都有两对ID,分别是集合中的teams\u和集合中的teams\u not\u,类的所有成员都连接了可排序的。页面上将有任意数量的这些配对,最后的集合号为0,表示正在创建的新集合(与正在编辑的现有集合相反) 我正在使用$(文档)中的以下函数进行设置。准备就绪: var teams_in_set_pattern = /^teams_in_set(\d*)$/; $(function() {
集合中的teams\u
和集合中的teams\u not\u
,类的所有成员都连接了可排序的
。页面上将有任意数量的这些配对,最后的集合号为0,表示正在创建的新集合(与正在编辑的现有集合相反)
我正在使用$(文档)中的以下函数进行设置。准备就绪
:
var teams_in_set_pattern = /^teams_in_set(\d*)$/;
$(function() {
var connected_list = $(".connected-sortable");
for (var i = 0; i < connected_list.length; i++) {
var id = connected_list[i].id;
if (teams_in_set_pattern.test(id)) {
var set_num = id.match(teams_in_set_pattern)[1];
var teams_in = "#teams_in_set" + set_num;
var teams_out = "#teams_not_in_set" + set_num;
if (set_num > 0) {
$(teams_in + ", " + teams_out).sortable({
revert: true,
connectWith: ".connected-sortable",
cursor: 'move',
receive: function(event, ui) {
update_teams(set_num);
}
}).disableSelection();
}
else {
$(teams_in + ", " + teams_out).sortable({
revert: true,
connectWith: ".connected-sortable",
cursor: 'move',
}).disableSelection();
}
}
}
});
var teams_in_set_pattern=/^teams_in_set(\d*)$/;
$(函数(){
var connected_list=$(“.connected sortable”);
对于(变量i=0;i0){
$(团队输入+,“+团队输出)。可排序({
回复:对,
connectWith:“.connected sortable”,
光标:“移动”,
接收:功能(事件、用户界面){
更新团队(设置数量);
}
}).disableSelection();
}
否则{
$(团队输入+,“+团队输出)。可排序({
回复:对,
connectWith:“.connected sortable”,
光标:“移动”,
}).disableSelection();
}
}
}
});
其思想是当团队从一个列表移动到另一个列表时,更新团队(set_num)调用代码>行,触发一些更新数据库的Ajax。问题在于变量set_num
;它似乎没有保留填充receive:
时的值,而是具有上次设置的值,该值始终为0
我误解了什么?我需要做什么才能获得我想要的行为?这是异步Javascript中的一个常见问题。当更新团队运行时,循环已经运行
见类似问题:
我通常将问题代码移动到它自己的函数中,例如
function doIt(teams_in, teams_out, set_num) {
if (set_num > 0) {
$(teams_in + ", " + teams_out).sortable({
revert: true,
connectWith: ".connected-sortable",
cursor: 'move',
receive: function(event, ui) {
update_teams(set_num);
}
}).disableSelection();
}
else {
$(teams_in + ", " + teams_out).sortable({
revert: true,
connectWith: ".connected-sortable",
cursor: 'move',
}).disableSelection();
}
}
你链接到的问题真的很有帮助。非常感谢你!