【发布时间】:2018-01-19 12:33:56
【问题描述】:
我目前有以下代码
$(document).on('click', '#educationDone', function () {
var linkText = $('#educationDone').text();
if (linkText === 'Done') {
$('#degreeTable td:nth-child(1), #degreeTable th:nth-child(1)').hide();
$(this).text('Edit and reorder entries');
$("#degreeTable tbody").sortable("disable");
} else {
$(this).text('Done');
$('#degreeTable td:nth-child(1), #degreeTable th:nth-child(1)').show();
$("#degreeTable tbody").sortable("enable");
}
});
我得到 jquery-ui 错误:
cannot call methods on sortable prior to initialization; attempted to call method 'enable'
当它到达线路时:
$("#degreeTable tbody").sortable("enable");
或
$("#degreeTable tbody").sortable("disable");
当我在初始加载页面上拥有所有代码时,代码运行得非常好,但现在我试图将它分成几部分,因此它仅在用户单击某个按钮以加载所有 HTML 和 js 时加载那个部分。为了使点击事件起作用,我必须使用 .on 添加事件处理程序。我假设由于页面正在动态构建而引发错误。我如何需要重写可排序的行?我很确定它是语法,因为我试图把它放在我能放在的每一个地方,但它不起作用。我猜是这样的:
$(document).on('sort'),'#degreeTable', function()){}
但我不知道,我正在使用 jquery-1.12.4.min.js 和 ui/1.12.1/jquery-ui.js
感谢您的帮助
【问题讨论】:
-
你能创建一个DEMO吗?
-
Dipak chavda- 我看到了 stackoverlow 的答案,但那是一个列表,我不知道如何在桌子上使用它。
-
不确定我是否可以创建一个演示,但我会尝试通过代码添加很多部分
-
错误提示您在 Sortable 准备好之前调用了 Method。您可能想在调用
enable之前先调用.sortable()。
标签: javascript jquery jquery-ui jquery-ui-sortable sortables