jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 选择2打开下拉列表焦点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有多个文本输入和一些SELEct2元素的表单。
使用键盘在字段之间进行标签工作正常 – SELEct2元素的行为就像一个表单元素,并在制表时接收焦点。
我想知道是否可以在SELEct2元素获得焦点时打开下拉菜单。 @H_262_4@这是我迄今为止所尝试过的

$("#myid").SELEct2().on('SELEct2-focus',function(){
     $(this).SELEct2('open');
});
@H_262_4@但使用此代码后,下拉菜单在选择后再次打开。

解决方法

选择之后可能会触发SELEct2焦点事件。 @H_262_4@我找到的唯一方法SELEct2-focus和SELEct2-blur事件和jQuery one事件处理程序的组合。

@H_262_4@因此,元素第一次获得焦点时,SELEct2将被打开一次(因为一个),当元素模糊时,一个事件处理程序再次被附加,等等。

@H_262_4@码:

$('#test').SELEct2({
    data: [{
        id: 0,text: "enhancement"
    },{
        id: 1,text: "bug"
    },{
        id: 2,text: "duplicate"
    },{
        id: 3,text: "invalid"
    },{
        id: 4,text: "wontfix"
    }],width: "300px"
}).one('SELEct2-focus',SELEct2Focus).on("SELEct2-blur",function () {
    $(this).one('SELEct2-focus',SELEct2Focus)
})

function SELEct2Focus() {
    $(this).SELEct2('open');
}
@H_262_4@演示:http://jsfiddle.net/IrvinDominin/fnjNb/

@H_262_4@updatE

@H_262_4@要让鼠标单击工作,您必须检查触发处理程序的事件,只有事件为焦点,才能触发打开的方法

@H_262_4@码:

function SELEct2Focus() {
    if (/^focus/.test(event.typE)) {
        $(this).SELEct2('open');
    }
}
@H_262_4@演示:http://jsfiddle.net/IrvinDominin/fnjNb/4/

@H_262_4@更新为SELECT2 V 4.0

@H_262_4@SELEct2 v 4.0已更改其API,并删除自定义事件(请参阅https://github.com/select2/select2/issues/1908)。所以有必要改变检测方法

@H_262_4@码:

$('.js-SELEct').SELEct2({
    placeholder: "SELEct",width: "100%"
})

$('.js-SELEct').next('.SELEct2').find('.SELEct2-SELEction').one('focus',SELEct2Focus).on('blur',function () {
    $(this).one('focus',SELEct2Focus)
})

function SELEct2Focus() {
    $(this).closest('.SELEct2').prev('SELEct').SELEct2('open');
}
@H_262_4@演示:http://jsfiddle.net/IrvinDominin/xfmgte70/

大佬总结

以上是大佬教程为你收集整理的jquery – 选择2打开下拉列表焦点全部内容,希望文章能够帮你解决jquery – 选择2打开下拉列表焦点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。