首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.trigger("change")不工作

.trigger("change")不工作
EN

Stack Overflow用户
提问于 2018-01-03 00:15:05
回答 2查看 731关注 0票数 0

我正在做一个WordPress WooCommerce主题,但我遇到了一个问题..我已经制作了可以工作的数量增量按钮,但在单击事件之后,我想触发更新购物车按钮,但该按钮被WooCommerce禁用,并且需要在数量输入字段上发生更改事件。我尝试过.trigger('change')和.change()。两个都不管用,你能帮我吗?

代码语言:javascript
复制
$('.quantity').on('click', '.plus', function(e) {
  $input = $(this).prev('input.qty');
  var val = parseInt($input.val());
  var step = $input.attr('step');
  step = 'undefined' !== typeof(step) ? parseInt(step) : 1;
  $input.val(val + step).trigger('change');
});
$('.quantity').on('click', '.minus', function(e) {
  $input = $(this).next('input.qty');
  var val = parseInt($input.val());
  var step = $input.attr('step');
  step = 'undefined' !== typeof(step) ? parseInt(step) : 1;
  if (val > 0) {
    $input.val(val - step).trigger('change');
  }
});

$('.qty').on('change', function() {
  alert('.qty has changed!');
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="quantity">
  <input class="minus" type="button" value="-">
  <input type="number" step="1" min="0" max="" name="cart[256a54619faec7a3f96b726a46dae520][qty]" value="1" title="Qty" class="input-text qty text" size="4" pattern="[0-9]*" inputmode="numeric">
  <input class="plus" type="button" value="+">
</div>

在这段代码中,它可以工作,但在我的本地主机上却不行

EN

回答 2

Stack Overflow用户

发布于 2018-01-03 00:57:55

试试这个:

代码语言:javascript
复制
$('.quantity input').on('click', function(e) {
  $input = $(this).parent().find("input.qty");
  var step = $input.attr('step');
  var val = parseInt($input.val());
  step = 'undefined' !== typeof(step) ? parseInt(step) : 1;

  if( $(this).val() == "+" ) {
    $input.val(val + step);
  } else {
    $input.val(val - step);
  }

  $input.trigger("change");
});

$('.qty').on('change', function() {
  alert('.qty has changed!');
});
票数 0
EN

Stack Overflow用户

发布于 2018-05-04 16:52:33

当数量改变时,这是强制购物车更新的最简单的解决方案,而不需要单击“更新购物车”按钮。请注意,当button为disabled时,它也可以工作

代码语言:javascript
复制
add_action( 'wp_footer', 'wp_cart_refresh_update_qty' ); 
function wp_cart_refresh_update_qty() { 
    if (is_cart()) { 
        ?> 
        <script type="text/javascript"> 
            jQuery('div.woocommerce').on('change', '.quantity input', function(){
                jQuery("[name='update_cart']").removeAttr('disabled');
                jQuery("[name='update_cart']").trigger("click"); 
            }); 
        </script> 
        <?php 
    } 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48064279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档