【问题标题】:jQuery on ready and changejQuery on ready and change
【发布时间】:2015-02-23 18:35:16
【问题描述】:

问题是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) {

解决了我的问题,但下拉菜单不再起作用了!

【问题讨论】:

  • 请提供相关的HTML。没有足够的信息来回答这个问题。

标签: jquery function document-ready


【解决方案1】:

使用.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');

【讨论】:

  • 如果“form_auction_type”= 1,我想隐藏“form-row-rapper-price_bin”,这是页面加载的默认值。抱歉,您的方法无效
  • 那你还没有提供足够的信息。请提供您的 HTML。
  • 为什么需要更多的 HTML ?我的问题出在上面的脚本上,就像我说过切换下拉菜单可以解决问题一样,如何在页面加载时运行脚本??
  • 在页面加载时运行。 HTML 是必需的,因为所需的选定值似乎不是选择选项的默认值。没有 HTML,就不可能让代码做你想做的事,因为它按照要求做,而且有一个未知数。
【解决方案2】:

只需编写一个函数并从两个地方调用它。你甚至可以把它塞进 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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2012-09-06
    相关资源
    最近更新 更多