javascript - 启用和禁用 jquery 单击可排序

标签 javascript jquery html twitter-bootstrap jquery-ui

我有一个单击即可切换的按钮。此按钮在我的 html 中名为“subtaskTaskList”的列表中启用 jquery 可排序类。但是,我可以使用按钮进行切换,但可排序启用和禁用似乎没有响应。请参阅下面的代码。

<button id="sortButton" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-adjust"></span></button>

 $("#sortButton").click(function(){
    if($("#sortButton").hasClass("glyphicon-adjust")){
        $("#subtaskTaskList").sortable();
        $("#sortButton .glphyicon").toggleClass("glyphicon-adjust glyphicon-lock");
    }else{
     $("#subtaskTaskList").sortable('disable');
        $("#sortButton .glphyicon").toggleClass("glyphicon-lock glyphicon-adjust");
    }
});

这段代码在我的控制台中留下了一个错误,指出如果未初始化,则无法禁用可排序。我尝试过此代码的变体,包括:

$("#sortButton").click(function(){
    if($("#sortButton .glyphicon").hasClass("glyphicon-adjust")){
        $("#subtaskTaskList").sortable();
        $("#sortButton .glphyicon").toggleClass("glyphicon-adjust glyphicon-lock");
    }else{
     $("#subtaskTaskList").sortable('disable');
        $("#sortButton .glphyicon").toggleClass("glyphicon-lock glyphicon-adjust");
    }
});

以及:

$("#sortButton").click(function(){
    if($("#sortButton").find("span").hasClass("glyphicon-adjust")){
        $("#subtaskTaskList").sortable();
        $("#sortButton .glphyicon").toggleClass("glyphicon-adjust glyphicon-lock");
    }else{
     $("#subtaskTaskList").sortable('disable');
        $("#sortButton .glphyicon").toggleClass("glyphicon-lock glyphicon-adjust");
    }
});

后两段代码甚至不会导致字形图标的切换。任何投入将不胜感激。我查看了堆栈溢出,但没有发现任何处理此问题的具体问题。

最佳答案

使用外部函数切换可排序启用-禁用

$(document).on("click","button#switcher",function(){
    sortDisable();
})

function sortDisable() {
    $( "ul#sortme" ).sortable("disable");
}

你的代码也是如此:

$("#sortButton").click(function(){
        if($("#sortButton").find("span").hasClass("glyphicon-adjust")){
            sortEnable("#subtaskTaskList");
            $("#sortButton .glphyicon").toggleClass("glyphicon-adjust glyphicon-lock");
        }else{
            sortDisable("#subtaskTaskList");
            $("#sortButton .glphyicon").toggleClass("glyphicon-lock glyphicon-adjust");
        }
    });


    function sortEnable( target ) {
        $( target ).sortable("enable");
    }
    function sortDisable( target ) {
        $( target ).sortable("disable");
    }

关于javascript - 启用和禁用 jquery 单击可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577210/

相关文章:

javascript - jQuery 图像翻转淡入淡出

javascript - jQuery:当悬停在主元素上时如何悬停子元素的子元素

javascript - 数据更新后不调用 Angular 同级 ngInit 方法

javascript - 动态创建元素的持久性 css 规则更改

jquery - 查找隐藏父级中可见的子级

jquery - 在鼠标悬停时显示或隐藏部分

jquery - 表格在向下滚动时变为固定

html - 动态 div 高度在 ie8 中不起作用

jQuery Vertical Carousel 无限滚动

javascript - 永无止境的滚动,两侧克隆元素