我阅读了always trigger "change"-event for <select>, even if the select2-option clicked is already selected,由于该问题与我的问题非常相似,因此我在那里发布了我的问题,但没有得到答案。我的问题是,我有一个由Select2构建的下拉框和一个文本输入框。我想要实现的是,在Select2关闭后(无论值是否更改),我的文本输入框会获得焦点。
因此,我按照逻辑做了一些正确的事情,如下所示:
因此,我按照逻辑做了一些正确的事情,如下所示:
$('#select').select2({placeholder: 'City'});
$('#select')
.on('select2-close', function (e) {
$('#hey').focus();
});
http://jsfiddle.net/sobhanattar/x49F2/8/
您可以看到,文本输入框无法接受焦点。在查阅Select2文档并检查文档中的事件部分后,我意识到在关闭事件之后,将自动触发焦点事件。这意味着,在关闭Select2选择框之后,它会自动聚焦。因此,我将我的代码更改为以下内容:
$('#select').select2({placeholder: 'City'});
$('#select')
.on('select2-close', function (e) {
$('#select').blur();
})
.on('select2-blur', function(e) {
$('#hey').focus();
});
现在它可以正常工作。现在我想知道我的理解从Select2事件顺序是正确的还是我错过了什么。