似乎select2 4在清除当前所选项目时默认打开下拉菜单。以前的select2版本似乎没有这种行为,我正在尝试实现它,但目前还没有运气。

有谁知道如何挂接到clear事件,以便我们可以禁用它的默认行为并清除选择的选项而无需打开下拉菜单?

干杯,

最佳答案

可以确认,防止事件由于某种原因似乎不起作用,因此您可以在超时后关闭下拉菜单:

$("select").select2({
    allowClear: true
}).on("select2:unselecting", function(e) {
    $(this).data('state', 'unselected');
}).on("select2:open", function(e) {
    if ($(this).data('state') === 'unselected') {
        $(this).removeData('state');

        var self = $(this);
        setTimeout(function() {
            self.select2('close');
        }, 1);
    }
});

这是一个工作的 fiddle :http://jsfiddle.net/obq3yLf2/

09-30 22:28
查看更多