jQuery UI Selectable – 单击时取消选择所选项目
有没有人知道是否有办法配置一个jquery ui可选元素来单击它时取消选中所选元素? 有点像切换。 如果已选中,则取消选中,否则执行默认操作。
谢谢。
我回答你的问题已经很晚了,但是我还是要回答它,以便将其作为其他人的参考。
$( ".selector" ).bind( "mousedown", function ( e ) { e.metaKey = true; } ).selectable();
这将允许您正在寻找的切换行为。
那么这就是我刚才做的事情。 我使用类名来切换选择和取消选择。 我很想知道是否还有其他选择:
$("#selectable").selectable({ selected: function (event, ui) { if ($(ui.selected).hasClass('selectedfilter')) { $(ui.selected).removeClass('selectedfilter'); // do unselected stuff } else { $(ui.selected).addClass('selectedfilter'); // do selected stuff } }, unselected: function (event, ui) { $(ui.unselected).removeClass('selectedfilter'); } });
如果您希望保留现有选择但仍具有切换操作,则只需忽略给定解决方案的未选择事件。 您还需要删除ui选择的类。
$("#selectable").selectable({ selected: function (event, ui) { if ($(ui.selected).hasClass('selectedfilter')) { $(ui.selected).removeClass('selectedfilter').removeClass('ui-selected'); // do unselected stuff } else { $(ui.selected).addClass('selectedfilter').addClass('ui-selected'); // do selected stuff } } });
你是这个意思吗?
在选择操作结束时,在从选择中移除的每个元素上触发此事件。
代码示例
提供回调函数以将未选择的事件作为init选项处理。
$( ".selector" ).selectable({ unselected: function(event, ui) { ... } }); Bind to the unselected event by type: selectableunselected. $( ".selector" ).bind( "selectableunselected", function(event, ui) { ... });
资源: