0

我正在研究 ajax 脚本,用户可以点击 add_to_cart 按钮在购物车上添加商品。但不幸的是,它增加了单击两次。

//here is my code
$(".add_to.cart").click(function(e){
  $(this).shoppingCart("add_item");
});

此脚本单击发送两个 ajax 请求..

如何阻止它?提前感谢您的帮助。

//here is my markup
<tr id='p_<?php echo $products['p_id']; ?>'>
   <td class='p-img'><img src='products.php?img=2323' /></td>
   <td class='p-name'><?php echo $products['p_name']; ?></td>
   <td class='p-price'><?php echo $products['p_price]; ?></td>
   <td><a href='javascript:void(0);' class='btn_primary add_to_cart'> Add To Cart</a></td>
</tr>
4

2 回答 2

0

.data()您可以通过检查是否已被单击来设置标志。

$('.add_to.cart').click(function(e){
    var el = $(this);

    if(el.data('hasAddedItem') === true)
        return;

    el.data('hasAddedItem', true).shoppingCart('add_item');
});

hasAddedItem唯一的潜在问题是,除非您将元素的数据设置回 false ,否则您将无法重新单击它。

于 2013-01-19T08:05:27.340 回答
0

尝试改变

$(".add_to.cart").click(function(e){

$(".add_to_cart").click(function(e){

因为那是您在按钮上的课程:

class='btn_primary add_to_cart'
于 2013-01-19T15:57:33.043 回答