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.