【发布时间】:2011-04-26 04:16:04
【问题描述】:
有谁知道是否有一种方法可以配置 jquery ui 可选元素以在单击时取消选择选定元素?有点像拨动开关。如果它已被选中,请取消选中它,否则执行默认行为。
谢谢。
【问题讨论】:
标签: jquery jquery-ui selectable jquery-ui-selectable unselect
有谁知道是否有一种方法可以配置 jquery ui 可选元素以在单击时取消选择选定元素?有点像拨动开关。如果它已被选中,请取消选中它,否则执行默认行为。
谢谢。
【问题讨论】:
标签: jquery jquery-ui selectable jquery-ui-selectable unselect
我很晚才回复你的问题,但还是让我回答一下吧,以供其他人参考。
$( ".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-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
}
}
});
【讨论】:
这是你的意思吗?
此事件在选择操作结束时触发,在从选择中删除的每个元素上。
代码示例
提供一个回调函数来处理未选择的事件作为初始化选项。
$( ".selector" ).selectable({
unselected: function(event, ui) { ... }
});
Bind to the unselected event by type: selectableunselected.
$( ".selector" ).bind( "selectableunselected", function(event, ui) {
...
});
来源:
【讨论】: