2010-09-27 21 views
9

Tengo una función .change() configurada para un menú desplegable con un ID de #country. Cuando se carga la página, estoy tratando de ajustar el menú desplegable de "Estados Unidos" y ejecutar la función .Cambiar():Forzar la función .change() para ejecutar - jQuery

$('#country').change(function() { 
    resetDisclosure(); 
    var countryCode = $(this).val(); 
    var countryName = $('#country option:selected').text(); 

    $('#'+countryCode.toString()).fadeIn('slow'); 

    if(countryCode == 'OC' || countryCode == 'EU') { 
     $('#OC h4, #EU h4').html('For Residents of <strong>' + countryName + '</strong>'); 
    } 

    $.fancybox.resize(); 
    $.fancybox.center(); 
}); 

$("#country").val('OC'); 
$("#country").change(); 

La última función no está mal, porque no puedo forzar al. cambio() en la carga. ¿Cómo puedo forzar la función de cambio?

Soy súper principiante y he tratado de asignar el contenido de la función .change() a una función diferente y llamarla, pero tampoco funcionó.

+0

por qué no se puede forzar .Cambiar? ¿Lanza un error? –

Respuesta

13

Probar:

$("#country").val('OC').trigger('change');

+3

Él ya está haciendo esto de manera efectiva, '.change()' * es * '.trigger ('change')' es solo un atajo. –

+0

Gracias, la función de disparo se ve perfecta, pero todavía muestra un error. –

+0

Creo que tiene algo que ver con el hecho de que el menú desplegable que se cambia está en un Fancybox que se llama al mismo tiempo que el cambio. –