2010-09-27 26 views
9

Tôi có một hàm .change() được đặt cho một trình đơn thả xuống có ID là #country. Khi tải trang, tôi đang cố gắng đặt menu thả xuống thành "Hoa Kỳ" và chạy hàm .change():Force .change() để chạy - 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(); 

Chức năng cuối cùng là sai, vì tôi không thể ép buộc. thay đổi() khi tải. Làm thế nào tôi có thể đi về buộc các chức năng thay đổi?

Tôi là người mới bắt đầu siêu và đã cố gắng gán nội dung của hàm .change() cho một hàm khác và gọi hàm đó, nhưng nó cũng không hoạt động.

+0

tại sao bạn không thể ép buộc .change? Nó có ném một lỗi không? –

Trả lời

13

Hãy thử:

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

+3

Anh ta đã làm điều này một cách hiệu quả, '.change()' * là * '.trigger ('change')' nó chỉ là một shortcut. –

+0

Cảm ơn, chức năng kích hoạt trông hoàn hảo, nhưng nó vẫn còn lỗi. –

+0

Tôi nghĩ rằng nó có một cái gì đó để làm với thực tế là thả xuống được thay đổi là trong một Fancybox được gọi là cùng một lúc như sự thay đổi? –