2010-09-27 21 views
9

Mam funkcję .change() dla rozwijanego menu z identyfikatorem # kraju. Po załadowaniu strony, Próbuję ustawić menu rozwijane, aby „Stany Zjednoczone” i uruchom .change() Funkcja:Funkcja force .change() do uruchomienia - 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(); 

Ostatnią funkcją jest źle, bo nie może zmusić. change() podczas ładowania. Jak mogę wymusić zmianę?

Jestem super początkującym i próbowałem przypisać zawartość funkcji .change() do innej funkcji i zadzwonić, ale to też nie zadziałało.

+0

dlaczego nie można wymusić .change? Czy powoduje błąd? –

Odpowiedz

13

Spróbuj:

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

+3

Robi to już skutecznie, '.change()' * is * '.trigger ('change')' to tylko skrót. –

+0

Dzięki temu funkcja wyzwalacza wygląda idealnie, ale nadal wysyła błąd. –

+0

Myślę, że ma to coś wspólnego z faktem, że rozwijane menu jest w Fancybox, które jest wywoływane w tym samym czasie co zmiana? –

Powiązane problemy