Estoy usando la biblioteca select2 para mi búsqueda. 
¿Hay alguna forma de activar una acción después de seleccionar un resultado de búsqueda? por ejemplo, abra una ventana emergente o una simple alerta js.  
$("#e6").select2({
    placeholder: "Enter an item id please",
    minimumInputLength: 1,
    ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
        url: "index.php?r=sia/searchresults",
        dataType: 'jsonp',
        quietMillis: 3000,
        data: function (term, page) {
        return {
            q: term, // search term
            page_limit: 10,
            id: 10
            };
        },
        results: function (data, page) { // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to alter remote JSON data
            return {results: data};
        },
    },
    formatResult: movieFormatResult, // omitted for brevity, see the source of this page
    formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page
    dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
    escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
});
                    
                        jquery
                                search
                                jquery-select2
                                
                    
                    
                        spyfx
fuente
                
                fuente

Respuestas:
Ver la sección de eventos de documentación
Dependiendo de la versión, uno de los fragmentos a continuación debería proporcionarle el evento que desea; alternativamente, simplemente reemplace "select2-selected" con "change".
Versión 4.0 +
Los eventos ahora están en formato:
select2:selecting(en lugar deselect2-selecting)Gracias a Snakey por la notificación de que esto ha cambiado a partir de la 4.0.
$('#yourselect').on("select2:selecting", function(e) { // what you would like to happen });Versión anterior a 4.0
$('#yourselect').on("select2-selecting", function(e) { // what you would like to happen });Solo para aclarar, la documentación para
select2-selectingdice:mientras que el cambio tiene:
Por
changelo tanto, puede ser más apropiado para sus necesidades, dependiendo de si desea que la selección se complete y luego realice su evento, o potencialmente bloquear el cambio.fuente
Se realizaron algunos cambios en los nombres de los eventos de select2 (creo que en la versión 4 y posteriores), por lo que el '-' se cambia a este ':' .
Vea los siguientes ejemplos:
$('#select').on("select2:select", function(e) { //Do stuff });Puede consultar todos los eventos en el sitio del complemento 'select2': eventos select2
fuente
Esto funciona para mi:
$('#yourselect').on("change", function(e) { // what you would like to happen });fuente
.changeevento llega más tarde en la serie de ejecuciones que elselect2:selectevento. Para mí, estaba tratando de capturar el css de la selecciónselect2:selectpero, aunque lo vi en el inspector, no pude capturarlo a través deselect2:select; cuando lo cambié.changefuncionó porque Select2 activa elselect2:selectevento antes de actualizar el css para la selección original ... un poco loco , en mi opinión.Según mi uso anterior v.4, esto funcionará
$('#selectID').on("select2:select", function(e) { //var value = e.params.data; Using {id,text format} });Y por menos de la v.4 esto funcionará:
$('#selectID').on("change", function(e) { //var value = e.params.data; Using {id,text} format });fuente
e.params.args.dataPor encima de v4
$('#yourselect').on("select2:select", function(e) { // after selection of select2 });fuente
//when a Department selecting $('#department_id').on('select2-selecting', function (e) { console.log("Action Before Selected"); var deptid=e.choice.id; var depttext=e.choice.text; console.log("Department ID "+deptid); console.log("Department Text "+depttext); }); //when a Department removing $('#department_id').on('select2-removing', function (e) { console.log("Action Before Deleted"); var deptid=e.choice.id; var depttext=e.choice.text; console.log("Department ID "+deptid); console.log("Department Text "+depttext); });fuente