jQuery UI可选-单击取消选择所选项目

jQuery UI可选-单击取消选择所选项目,jquery,jquery-ui,selectable,jquery-ui-selectable,unselect,Jquery,Jquery Ui,Selectable,Jquery Ui Selectable,Unselect,有人知道有没有办法将jquery ui可选元素配置为在单击时取消选择所选元素?有点像开关。如果已选中,请取消选中它,否则执行默认行为 谢谢。这就是你的意思吗 在选择操作结束时,从选择中删除的每个元素都会触发此事件 代码示例 提供回调函数以将未选择的事件作为init选项处理 $( ".selector" ).selectable({ unselected: function(event, ui) { ... } }); Bind to the unselected event by type

有人知道有没有办法将jquery ui可选元素配置为在单击时取消选择所选元素?有点像开关。如果已选中,请取消选中它,否则执行默认行为

谢谢。

这就是你的意思吗

在选择操作结束时,从选择中删除的每个元素都会触发此事件

代码示例

提供回调函数以将未选择的事件作为init选项处理

$( ".selector" ).selectable({
   unselected: function(event, ui) { ... }
});
Bind to the unselected event by type: selectableunselected.
$( ".selector" ).bind( "selectableunselected", function(event, ui) {
  ...
});
资料来源:


好吧,这就是我最后要做的。我使用了一个类名来切换选择和取消选择。我很想知道是否还有其他选择:

$("#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
    }
}
});

我已经很晚才回答你的问题了,但还是让我来回答吧,以备他人参考

$( ".selector" ).bind( "mousedown", function ( e ) {
    e.metaKey = true;
} ).selectable();

这将允许您正在寻找的切换行为。

我需要的是在单击选定元素时触发此未选定事件。现在,这个事件只有在我点击另一个可选元素时才会触发。啊,好吧,现在我得到你想要的了!很抱歉没问题,特鲁法。我肯定我没解释清楚。感谢您的帮助。请注意,要切换类名,只需使用“toggleClass(“selectedFilter”)”。不需要检查元素是否有类。ToggleClass为您做了这件事。我看到它按预期工作,但老实说,我不明白怎么做!你能解释一下为什么这段代码在工作吗(我的意思是它是如何在第二次点击时取消选中的?)这只是在“mousedown”事件中添加了元键(Ctrl),这会强制执行与你自己按下Ctrl相同的行为。