启用和禁用 jquery 可排序在单击时
Enable and disable jquery sortable on click
我有一个按钮,我在点击时可以切换。此按钮在我的 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");
}
});
这段代码在我的控制台中给我留下了一个错误,说如果没有初始化,则无法禁用 sortable。我已经尝试了此代码的变体,包括:
$("#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");
}
});
后两段代码甚至不会导致切换 glyphicon。任何意见将不胜感激。我查看了堆栈溢出,但没有找到任何处理此问题的具体问题。
使用外部函数切换可排序的启用禁用
$(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");
}
以下是
启用/禁用sortable()
的方法:
$('#sortButton').click(function() {
//check if sortable() is enabled and change and change state accordingly
// Getter
var disabled = $("#subtaskTaskList").sortable( "option", "disabled" );
if (disabled) {
$("#subtaskTaskList").sortable( "enable" );
$("#sortButton .glphyicon").toggleClass("glyphicon-adjust glyphicon-lock");
}
else {
$("#subtaskTaskList").sortable("disable");
$("#sortButton .glphyicon").toggleClass("glyphicon-lock glyphicon-adjust");
}
});
相关文章:
- jQuery Datatables:单击一列时对另一列进行排序
- 表排序器分页使表行不可单击
- 单击已连接的可排序项时查找列表文本
- 单击按钮在jQuery中对表进行排序
- 尝试通过单击按钮对列表框进行排序,而不使用 jQuery
- 通过单击非模板元素对集合进行主干排序
- 是否可以在不中断单击事件的情况下对子级鼠标按下重新排序
- 启用和禁用 jquery 可排序在单击时
- 如何在单击 Ajax 可排序表的行时打开信息窗口
- 使用 UI 可排序,在单击按钮时根据给定值将项目移动到新位置
- 通过单击列标题对表进行排序
- YUI 2.8.2 数据表在客户端按钮单击操作完成后对旧值进行排序
- jQuery单击排序并重置无法正常工作
- 如何单击时从排序表标题中删除
- jquery 数据表排序 表标题中的单击事件不在列标题文本中
- 通过单击列的标题对列进行排序
- 引导表:是否可以调用从代码中按列对行进行排序的函数(无需单击标题)
- 使用按钮单击将 jQuery UI 可排序元素设置为第一个位置
- jQuery UI可排序-单击时拖动元素
- 角度列排序单击标题