jQuery准备好并改变

时间:2015-02-23 18:35:16

标签: jquery function document-ready

问题是jQuery('#form-row-rapper-price_bin').hide()不会运行,除非我从" form_auction_type"中选择另一个值。并回到了旧的价值。

我需要脚本在页面加载时运行,也需要更改下拉框的值" form_auction_type"

jQuery('#form_auction_type').change(function(e) {
    if(jQuery('#form_auction_type').val() == '2'){
        jQuery('#form-row-rapper-price_bin').show(); 
        jQuery('#form-row-rapper-price_current').hide(); 
        jQuery('#form-row-rapper-price_reserve').hide(); 
    } else { 
        jQuery('#form-row-rapper-price_bin').hide(); 
        jQuery('#form-row-rapper-price_reserve').show();  
        jQuery('#form-row-rapper-price_current').show(); 
    } 
});

更改这条线更容易
jQuery('#form_auction_type').change(function(e) { 

jQuery('#form_auction_type').ready(function(e) {

解决了我的问题,但下拉菜单已不再有效了!

2 个答案:

答案 0 :(得分:2)

只需使用.trigger('change')触发页面加载更改。这将导致anon函数运行。

jQuery('#form_auction_type').change(function(e) {
    if (jQuery('#form_auction_type').val() == '2') {
        jQuery('#form-row-rapper-price_bin').show();
        jQuery('#form-row-rapper-price_current').hide();
        jQuery('#form-row-rapper-price_reserve').hide();
    } else {
        jQuery('#form-row-rapper-price_bin').hide();
        jQuery('#form-row-rapper-price_reserve').show();
        jQuery('#form-row-rapper-price_current').show();
    }
}).trigger('change');

答案 1 :(得分:0)

只需编写一个函数并从两个地方调用它。您甚至可以将其隐藏在ready回调中,因此它不是全局的(如果您还没有使用范围函数):

jQuery(function() {
    function updateDisplay() {
        if(jQuery('#form_auction_type').val() == '2'){
            jQuery('#form-row-rapper-price_bin').show(); 
            jQuery('#form-row-rapper-price_current').hide(); 
            jQuery('#form-row-rapper-price_reserve').hide(); 
        } else { 
            jQuery('#form-row-rapper-price_bin').hide(); 
            jQuery('#form-row-rapper-price_reserve').show();  
            jQuery('#form-row-rapper-price_current').show(); 
        } 
    }

    updateDisplay();
    jQuery('#form_auction_type').change(updateDisplay);
});