14

有谁知道是否有办法配置 jquery ui 可选元素以在单击时取消选择选定元素?有点像拨动开关。如果它已被选中,请取消选中它,否则执行默认行为。

谢谢。

4

4 回答 4

41

i'm very late in responding to your question, but let me just answer it anyway so that to keep it as a reference for others.

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

this will allow the toggle behavior that you're looking for.

于 2012-09-25T22:28:59.567 回答
11

好吧,这就是我刚刚结束的事情。我使用类名来切换选择和取消选择。我很想听听是否有其他选择:

$("#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');
    }
});
于 2010-10-15T22:40:28.730 回答
2

如果您希望保留现有选择并进行切换操作,您只需忽略给定解决方案的未选择事件。您还需要删除 ui-selected 类。

$("#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
    }
}
});
于 2011-09-23T15:12:03.603 回答
0

你是这个意思吗?

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

代码示例

提供一个回调函数来处理未选择的事件作为初始化选项。

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

资源:

http://jqueryui.com/demos/selectable/#event-unselected

于 2010-10-15T22:04:22.747 回答