javascript - jQuery-ui sortable - 在禁用可排序后再次启用可排序

标签 javascript jquery jquery-ui jquery-ui-sortable sortables

我有以下 jQuery 代码:

var isOk = true;
$('#edit').click(function () {
    if (isOk) {
        $('table tbody').sortable({
            axis: 'y',
            update: function (event, ui) {
                var data = $(this).sortable('serialize');
                $.ajax({
                    data: data,
                    type: 'POST',
                    url: 'updatePagesOrder.php',
                    success: function (msg) { //re-number the rows from 1 to n
                        $('table > tbody tr').each(function (i) {
                            $(this).attr('id', 'item-' + (i + 1)); // use $(this) as a reference to current tr object
                        });
                    },
                    error: function () {
                        alert("An error occurred");
                    }
                });
            }
        }, "enable");
    }
    else {
        $("table tbody").unbind();
        $('table a').unbind();
    }
    isOk = !isOk;

在上面的代码中,#edit 是一个按钮,第一次单击它会导致表格行可排序,第二次单击它会禁用可排序选项。

我希望在第三次单击时,行将再次可排序。 我尝试了上面的代码,但没有成功。

为什么?我该如何解决它?谢谢!

最佳答案

在点击处理程序之外初始化小部件:

$('table tbody').sortable({
    disabled: true, // Initially disabled
    axis: 'y',
    update: function (event, ui) {
        var data = $(this).sortable('serialize');
        $.ajax({
            data: data,
            type: 'POST',
            url: 'updatePagesOrder.php',
            success: function (msg) { //re-number the rows from 1 to n
                $('table > tbody tr').each(function (i) {
                    $(this).attr('id', 'item-' + (i + 1)); // use $(this) as a reference to current tr object
                });
            },
            error: function () {
                alert("An error occurred");
            }
        });
    }
});

然后,只需在单击按钮时切换“禁用”选项即可。

$("#edit").click(function() {
    var table = $('table tbody');
    table.sortable('option', 'disabled', !table.sortable('option', 'disabled'));
});

关于javascript - jQuery-ui sortable - 在禁用可排序后再次启用可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24584585/

相关文章:

javascript - 在高地流中执行node-mysql查询

javascript - 如何使 map 适合传单中的图 block 层边界

javascript - 根据动态键数组从数组返回值

javascript - 如何使用 javascript 生成正确的 csv 文件格式

javascript - jQuery(反)模式 : building selectors with string manipulation

javascript - 将逗号分隔的字符串数组转换为不同的数组

javascript - 数据表:How to control the <th> width of table .我正在使用Jquery -1.9.4版本

javascript - 手机锁时可以触发播放音频吗

jquery - 将 href 添加到 JQuery 对话框按钮

javascript - 为什么这个可拖动的jquery组件不可拖动?