Entrada de enfoque después de que Select2 cierre el evento de fuego

Siempre leo “activar” el evento “cambiar” para , incluso si la opción select2-clicked ya está seleccionada y como el problema estaba tan cerca de mi problema, hice mi pregunta allí pero no proporcioné respuesta. Mi problema es que tengo un cuadro de selección construido por Select2 y una entrada de texto. Lo que quiero lograr es después de que Select2 se cierre (independientemente de que se cambie el valor o no) mi entrada de texto se convierta en foco .

Así que hice algo lógicamente bueno como sigue:

$('#select').select2({placeholder: 'City'}); $('#select') .on('select2-close', function (e) { $('#hey').focus(); }); 

http://jsfiddle.net/sobhanattar/x49F2/8/

Como puede ver, la entrada de texto no acepta el enfoque. Después de excavar un poco en el documento Select2 e inspeccionar la parte de la documentación de los Eventos, me di cuenta de que, después del evento Cerrar, se produce un evento Focus que se activa automáticamente. Significa que después de cerrar un Cuadro de selección Select2, se enfoca a sí mismo. Así que cambié mi código a algo como esto:

 $('#select').select2({placeholder: 'City'}); $('#select') .on('select2-close', function (e) { $('#select').blur(); }) .on('select2-blur', function(e) { $('#hey').focus(); }); 

Y funciona bien. Ahora quiero saber que mi comprensión del orden de eventos de Select2 fue correcta o que me perdí algo en el medio.

Eche un vistazo aquí, esta pregunta ya tiene una respuesta: Blur select2 input after close

 .on("select2-close", function () { setTimeout(function() { $('.select2-container-active').removeClass('select2-container-active'); $(':focus').blur(); $("#elementid").focus(); }, 1); }); 

elementid es el elemento id que desea enfocar después de select2 closese. Acabo de agregar $("#elementid").focus(); a la respuesta en el enlace.

utilizar css:

 html, body { height:100% } 

Prueba este:

 $('#select2').on('select2:close', function (e) { // your focus code for element }