Javascript JQuery.sortable()仅在页面刷新后工作
我有一个例子,一个页面包含很多JQuery,几乎所有JQuery都可以工作。除了:Javascript JQuery.sortable()仅在页面刷新后工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个例子,一个页面包含很多JQuery,几乎所有JQuery都可以工作。除了: private sortableOptions = { JSPA: this, delay: 50, group: "favourites", connectWith: ".sel-favourite-groups", vertical: false, itemSelector: "app-favourite", placeholder: "<li c
private sortableOptions = {
JSPA: this,
delay: 50,
group: "favourites",
connectWith: ".sel-favourite-groups",
vertical: false,
itemSelector: "app-favourite",
placeholder: "<li class='placeholder favourite list-group-item' style=''></li>",
tolerance: 15,
onDrop: this.sortDrop,
onDragStart: this.sortDragStart
};
$list.sortable(this.sortableOptions);
通过回顾其他类似的问题(通常JQuery在刷新后不起作用),我已经尝试过:
- 将所有内容添加到DOM,然后调用
.sortable()
- 调用
.sortable('refresh')
- 简化代码,以便不包括上述“组”(多个
)
.sortable()
不起作用
我不明白的是刷新是如何工作的,当导航到(没有缓存内容)时的初始页面加载不应该与点击f5相同吗
正如我在开始时所说的,页面上还有很多其他jQuery,所有这些都按照预期工作
有人知道这里发生了什么吗
private render(): JQuery {
let $page = this.getTemplate("home");
let $list = $page.find("#home-favourites");
$list.sortable(this.sortableOptions);
try {
for (let f = 0; f < this.user.UserSettings.favourites.sites.length; f++) {
this.drawFavourite($list, this.user.UserSettings.favourites.sites[f]);
}
// and do the same for the groups
for (let g = 0; g < this.user.UserSettings.favourites.groups.length; g++) {
let group = this.user.UserSettings.favourites.groups[g];
// add the header and list to the DOM
let $list = this.drawFavouriteGroup(group);
$list.sortable(this.sortableOptions);
if (group.state == "minimised") {
let $li = $list.parent();
this.drawMinimisedFavouriteGroup($li, group.name);
$li.addClass("collapse");
}
for (let f = 0; f < group.sites.length; f++) {
this.drawFavourite($list, group.sites[f]);
}
}
}
catch (ex) {
console.log("EXCEPTION:: Home.render(): ", ex);
}
return $page;
}