繁体   English   中英

点击事件不会在首次点击时触发,而是在每次点击后触发

[英]Click event doesn't fire on first click but does everytime after

我正在将“添加到购物车”按钮更新为购物车中的商品的跨度计数器,每次单击该按钮后,该计数器每次都有效,但第一次单击时不起作用

我尝试使用.on方法给出相同的结果,并尝试使用document.ready也不起作用。

$(document).ready(function() {
  $('#addToCart').on('click', function() {
    jQuery.getJSON('/cart.js', function(cart) {
      $("span.count").html(cart.item_count);
    });
  }); 
});

我希望addToCart按钮可以在每次点击时更新span.count。 实际结果是它在第一次单击后就可以使用。

$(document).ready(function() { 
  $('#addToCart').on('click', function() { 
    alert("Hello"); 
  }); 
});

请立即尝试,希望对您有所帮助

每次单击按钮,按钮单击就没有问题

 $(document).ready(function() { $('#addToCart').on('click', function() { alert('button clicked'); jQuery.getJSON('/cart.js', function(cart) { $("span.count").html(cart.item_count); }); }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/0.4.1/cart.min.js"></script> <button id="addToCart" type="button">Add to cart</button> <span>Cart Items: </span> <span class="count">0</span> 

如果可行,您可以尝试以下提供的解决方案:

$(document).ready(function() {
    $(document).on('click', '#addToCart', function() {  
        alert('button clicked');
        jQuery.getJSON('/cart.js', function(cart) { 
            $("span.count").html(cart.item_count);
        });
    }); 
});

我想建议您另一种无需使用Ajaxify购物车API即可更新购物车的方法。 您应该尝试一次。 我说的是cart.js

您只需要在主题标题中的CDN下方添加即可。

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/0.4.1/cart.min.js"></script>

之后,您需要在html中添加标签“ data-cart-render”。 它将自动在html标签中呈现购物车项目计数。 例:

<span data-cart-render="item_count"></span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM