0

ユーザーがadd_to_cartボタンをクリックしてカートにアイテムを追加できるajaxスクリプトに取り組んでいます。残念ながら、シングルクリックに2回のクリックが追加されます。

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

このスクリプトは、シングル クリックで 2 つの 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 に答える