trigger open close check change jquery jquery-select2

jquery - open - select2 set value



¿Hay alguna forma de comprobar si un elemento ya tiene jquery select2 aplicado? (3)

Por encima de la respuesta es casi correcta.
Pero crea un problema cuando estamos agregando elementos dinámicamente en la misma página y aplicando select 2 al elemento recién creado.
En ese momento, el selector debe especificarse no solo con clase sino también con el tipo de entrada. Código de referencia PFB.

$(''inputp[type="text"].MyDripdowns'').each(curr_idx, curr_elem){ //Check if select 2 is already applied or not if($(curr_elem).hasClass(''.select2-offscreen'')){ //Select 2 is already applied to this element } else{ //Apply Select 2 to this element } }

Quiero aplicar select2 a un grupo de elementos jquery en la página, todos tienen el mismo nombre de clase, pero parece que si llamo a select2 () en un elemento que ya tenía un select2 () llamado, entonces explota. aqui esta mi codigo

$(''.MyDropdowns'').each(function (i, obj) { $(obj).select2({ width: "455px" }); });

Así que quiero algo como:

$(''.MyDripdowns'').each(function (i, obj) { if (!$(obj).HasSelect2Initiatized) { $(obj).select2({ width: "455px" }); } });

¿Existe algo como esto?



puedes comprobar si el elemento tiene atributo select2

$(''.MyDripdowns'').each(function (i, obj) { if (!$(obj).data(''select2'')) { $(obj).select2({ width: "455px" }); } });

EDITAR

Como @ Fr0zenFyr dijo en su comentario para v4.0, puedes usar:

if (!$(obj).hasClass("select2-hidden-accessible"))