0

私はある種のショッピングカートに取り組んでいます。商品をカートに入れることができるように設定しました(複数の商品を扱うことができます)。このコードを使用して、カートからのアイテムの削除を処理しています。

$('.delete-button').click(function(ev) {
            ev.stopPropagation();
            ev.preventDefault();
            idValue = $(this).parent().siblings(".name").attr('id');
            $.post("includes/delete-cart.php",{id:idValue},
            function(data){
                // Do something with returned data.
            }, "json");
            $("#wrap-change-cart").load('includes/cart-sidebar.php',function(){
                $('#loading').hide();
            }); // Load change in cart.
        });

delete-cart.php ファイルは、データベースからアイテムを削除します (簡略化された mySQL クエリ)。問題は、削除ボタン ( タグ ) が押されると、削除されることもありますが、ページが更新されることもあります (それ自体にリンクされたタグであるため)。これはコードの最初の 2 行で停止する必要があると考えられていました。提案?

PS不適切なタイトルについての謝罪

4

2 に答える 2

0

さらなる調査からわかったことは、要素が (jQuery などを介して) ライブで生成されるため、オン クリック イベントが追加されないため、このコードを含む .on() の使用に切り替えたことです。

$('#wrap-change-cart').on('click', 'a.delete-button', function (ev) {

これは、ページの更新が行われないことを意味しますが、まだ更新されない場合があります。前よりいいけど

于 2013-07-18T02:18:31.287 に答える
0

次のような入力タグとしてボタンを設定している場合:

<input type="submit" name="delete" value="delete" />

jQuery クリック イベント ハンドラーではなく、onclick を追加できます。

<input type="submit" onclick="return deleteCart()" name="delete" value="delete" />

deleteCart() 関数が true を返すことを確認している限り、ページはリロードされません。

お役に立てれば!

于 2013-07-17T13:29:24.407 に答える