w3schools remover removeattr remove quitar attribute atributos jquery jquery-chosen

remover - removeattr display jquery



Elegido actualizado no funciona (5)

Código:

$(''#test'') .val(1) .trigger(''liszt:update'') .removeClass(''chzn-done''); $(''#test_chzn'').remove(); $("#test").chosen({ width: "220px", no_results_text: "test" });

Tengo un menú desplegable elegido. Cambié el contenido de las opciones y el activador de llamadas elegido: actualizado pero Elegido no reconstruye el menú desplegable. Esta es mi actualización

<select name="shortcode" style="width: 150px; display: none;" class="chosen_select chzn-done" id="select_shortcode"> <option value=""></option> <option value="7183">7183</option> <option value="7983">7983</option> </select>

Y este es el menú desplegable Elegido (se debe reconstruir y eliminar dos últimos <li> )

<ul class="chzn-results"> <li id="select_shortcode_chzn_o_1" class="active-result" style="">7183</li> <li id="select_shortcode_chzn_o_2" class="active-result" style="">7983</li> <li id="select_shortcode_chzn_o_3" class="active-result" style="">8208</li> <li id="select_shortcode_chzn_o_4" class="active-result" style="">8308</li> </ul>

Este es mi código jQuery:

$(''#select_shortcode_mask'').change(function(){ var shortcode_mask = $(''#select_shortcode_mask'').val(); $(''#select_shortcode'').empty(); var shortcode = {"7X83":["7183","7983"],"8x08":["8208","8308"]}; $(''#select_shortcode'').append("<option value=''''></option>"); if(jQuery.isArray(shortcode[shortcode_mask])){ $.each( shortcode[shortcode_mask], function( subkey, subvalue ) { $(''#select_shortcode'').append("<option value=''"+subvalue+"''>"+subvalue+"</option>"); }) } else { var full_shortcode = ["7183","7983","8208","8308"]; if(jQuery.isArray(full_shortcode)){ $.each(full_shortcode, function( subkey, subvalue ) { $(''#select_shortcode'').append("<option value=''"+subvalue+"''>"+subvalue+"</option>"); }) } } $("#select_shortcode").trigger("chosen:updated"); });

SOLUCIONADO: uso una versión anterior, por lo que debería:

$("#select_shortcode").trigger("liszt:updated");

Así que dump ^^


La función de cambio llama al cambio para el elemento "#select_shortcode_mask". Su lista de selección tiene ID: "#select_shortcode"


Mi camino es este ...

$timeout(function() { $(''#CampSrchId'').trigger(''chosen:updated''); }, 1000);

O

window.setInterval(function() { $(''#CampSrchId'').trigger(''chosen:updated''); }, 1000);


Utilizo el complemento elegido con frecuencia, por supuesto que me encuentro con este problema más de una vez.

Normalmente usar .trigger("chosen:updated") puede resolverlo. Pero hace solo un minuto, este método ya no funciona, me siento tan confundido, porque uso una misma función en el archivo 2 js, digamos que a.js y b.js , funciona en a.js , pero No funciona en b.js No puedo entender por qué ... casi pierdo la cabeza!

Entonces, .chosen("destroy") la API de nuevo. Encontré el .chosen("destroy") , ¡me inspiró!

Y creo que es la solución definitiva : destruirlo y reconstruirlo.

$(''.chosen'').chosen("destroy").chosen();

¿Soy demasiado ruidoso? :pag


solía

$("select").chosen({ width: "100%" });//chosen hack

Como cuando se usa .trigger("chosen:updated"); Esto no parece resolver el problema. Parece hacky pero funciona bien.