我有一个在.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上运行上面的代码??
答案 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();
});