我正在开发各种购物车。已经完成所有设置,可以将项目添加到购物车(可以处理多个项目)。我正在使用此代码来处理从购物车中删除项目:
$('.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行代码中停止。建议?
P.S。对坏名称道歉
答案 0 :(得分:0)
如果您将按钮设置为输入标记,请执行以下操作:
<input type="submit" name="delete" value="delete" />
您可以添加onclick而不是jQuery click事件处理程序:
<input type="submit" onclick="return deleteCart()" name="delete" value="delete" />
只要确保deleteCart()函数返回true,页面就不应该重新加载。
希望这有帮助!
答案 1 :(得分:0)
我从一些进一步的研究中发现,由于元素是实时生成的(通过jQuery等),因此没有添加点击事件,因此我已切换到使用.on(),这涉及到此代码:
$('#wrap-change-cart').on('click', 'a.delete-button', function (ev) {
现在意味着没有页面刷新,但有时它仍然无法通过。比以前更好