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 查询)。问题是当按下删除按钮(标签)时,有时它会删除,但有时会刷新页面(因为它是一个链接到自身的标签),认为这应该在前两行代码中停止。建议?

PS 抱歉标题不好

4

2 回答 2

0

如果您将按钮设置为输入标签,如下所示:

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

您可以添加 onclick 而不是 jQuery click 事件处理程序:

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

只要确保您的 deleteCart() 函数返回 true,页面就不会重新加载。

希望这可以帮助!

于 2013-07-17T13:29:24.407 回答
0

我从一些进一步的研究中发现,当元素是实时生成的(通过 jQuery 等)时,没有添加点击事件,所以我已经切换到使用涉及此代码的 .on() :

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

现在这意味着没有页面刷新即将到来,尽管有时它仍然没有通过。虽然比以前好

于 2013-07-18T02:18:31.287 回答