Sto provando a inserire un pulsante in elementi di risultato select2 (per consentire all'utente di rimuovere elementi). Sono riuscito a posizionare i pulsanti, ma non sono ancora riuscito a gestire il loro evento click. In qualche modo l'evento non viene sollevato. Penso che qualcosa di simile a select2 stia chiudendo il menu a discesa prima che l'evento click del mio pulsante aumenti, ma non riesco a capire come potrei farlo funzionare.Come posizionare un pulsante in una voce di risultato select2 e gestirne il clic?
Ecco il frammento di ciò che ho ora.
...
formatResult: function (item) {
return item.text + "<button class='btn btn-xs btn-default pull-right select2-result-button' data-id='" + item.id + "'>×</button>";
}
...
$(document).on("click", ".select2-result-button", function (e) {
alert("clicked: " + $(this).data("id"));
e.preventDefault();
e.stopPropagation();
return false;
});
Ecco una demo fiddle. Ho anche provato l'evento Mousedown senza successo.
Una parte, ma nel tuo gestore di clic, 'return false' è equivalente a' e.preventDefault(); e.stopPropagation() '. – joews
Sì, lo so, ero così confuso che volevo essere sicuro di provare tutto :) –
Ma in realtà quando ho eseguito il debug nel codice mi sono reso conto che il gestore non viene nemmeno chiamato, quindi non è realizzato come prevenire o non impedirgli di ribollire. –