jQuery - 运行change()和ready()的函数

时间:2013-06-22 04:22:32

标签: jquery

我有一个在.change()上运行的jquery代码。 但我想在jquery .ready()上运行相同的代码,但它无效。

这是我的代码:

    jQuery('.nhp-opts-select-hide-below').change(function(){
        var option = jQuery('option:selected', this);
        if(option.data('show').length > 0 || option.data('hide').length > 0){
            jQuery(option.data('show')).each(function(){
                if(jQuery(this).closest('tr').is(':hidden')){
                    jQuery(this).closest('tr').fadeIn('fast');
                }
            });
            jQuery(option.data('hide')).each(function(){
                if(jQuery(this).closest('tr').is(':visible')){
                    jQuery(this).closest('tr').fadeOut('fast');
                }
            });

        }else{
            jQuery(option.data('show')).each(function(){
                if(jQuery(this).closest('tr').is(':visible')){
                    jQuery(this).closest('tr').fadeOut('fast');
                }
            });
            jQuery(option.data('hide')).each(function(){
                if(jQuery(this).closest('tr').is(':hidden')){
                    jQuery(this).closest('tr').fadeIn('fast');
                }
            });     
        }
    }); 

请告诉我如何在jquery ready上运行上面的代码??

2 个答案:

答案 0 :(得分:18)

只需在没有参数的情况下调用.change()即可。把整个东西放在你准备好的处理程序中,然后:

jQuery(function($) {
    $('.nhp-opts-select-hide-below').change(function(){
        // snip...
    }).change(); // that's it
});

答案 1 :(得分:3)

最简单的方法是在准备就绪时手动触发更改事件。

jQuery(function() {
    $('.nhp-opts-select-hide-below').change();
});