J'utilise donc la bibliothèque Select2 4 ( https://select2.github.io/ ) et j'ai un problème.
<select id="test" multiple style="width:800px;">
<option value="a">aaaaa</option>
<option value="b">bbbbb</option>
<option value="c">cccc</option>
<option value="d">ddddd</option>
</select>
(...)
$("#test").select2({
tags: true,
tokenSeparators: [',', ' ']
})
Cela permet de générer, après avoir fait quelques choix, un élément DOM qui contient quelques <li>
s
Donc - cela fonctionne bien. Mais j'ai besoin d'ajouter mes classes à ces <li>
éléments après le changement. Je ne sais pas comment faire car Select2 réécrit mes classes instantanément après l'ajout.
J'ai essayé quelque chose comme ça :
selectEl.change(function() {
var elements = $('.select2-selection > ul > li');
elements.each(function() {
$(this).addClass('my-test-class');
});
});
mais rien ne change (sauf le dernier élément, qui est une entrée). Je veux dire - je pense que cela fonctionne, mais Select2 le réécrit instantanément.
J'ai essayé de le faire en utilisant change, select2:select listeners et aucune de ces méthodes ne fonctionne bien.
L'idée est la suivante : ajouter "select2-auto" à l'adresse de l'utilisateur. <li>
qui sont choisis dans la liste déroulante, et la classe "select-manual" aux autres.