我读取总是触发"更改" - <select>的事件,即使已经选择了单击的select2选项,并且因为问题非常接近我的问题,我在那里问了我的问题,但没有提供答案.我的问题是我有一个由Select2构造的选择框和一个文本输入.我想要实现的是在Select2关闭后(无论值是否更改)我的文本输入变为焦点.
所以我做了一些逻辑上很好的事情如下:
$('#select').select2({placeholder: 'City'});
$('#select')
.on('select2-close', function (e) {
$('#hey').focus();
});
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/sobhanattar/x49F2/8/
如您所见,文本输入不接受焦点.在对Select2文档进行一些挖掘并检查文档的事件部分后,我意识到在Close事件之后,会自动触发Focus事件.这意味着在关闭Select2选择框后,它会自动聚焦.所以我将代码更改为:
$('#select').select2({placeholder: 'City'});
$('#select')
.on('select2-close', function (e) {
$('#select').blur();
})
.on('select2-blur', function(e) {
$('#hey').focus();
});
Run Code Online (Sandbox Code Playgroud)
它工作得很好.现在我想知道我对Select2事件顺序的理解是正确的还是我错过了中间的东西.