在实施AJAX分页后添加到购物车不起作用

时间:2018-02-21 14:14:52

标签: javascript php jquery ajax

我在我的商店使用AJAX时遇到问题。

我刚刚实施了分页(也使用了AJAX)并且添加到购物车不再起作用了。

这真的很奇怪,好像我会点击添加到购物车两次非常快,它在某些情况下有效。

以下是添加到购物车功能:

$(".form-item").submit(function(e){
  var form_data = $(this).serialize();
  var button_content = $(this).find('button[type=submit]');
  button_content.html('Adaugare...'); //Loading button text
  $.ajax({ //make ajax request to cart_process.php
    url: "cart_process.php",
    type: "POST",
    dataType:"json", //expect json value from server
    data: form_data
  }).done(function(data){ //on Ajax success
    $("#cart-info").html(data.items); //total items in cart-info element
    button_content.html('Cumpara'); //reset button text to original text
    $(".cart-box").trigger( "click" ); //trigger click to update the cart box.
  })
  e.preventDefault();
});

以下是分页功能之一:

function getresult(url) {
$.ajax({
  url: url,
  type: "POST",
  data:  {rowcount:$("#rowcount").val(),name:$("#name").val(),code:$("#code").val()},
  success: function(data){ $("#toys-grid").html(data);}
   });
}
getresult("live_getresult.php");

我认为这两个AJAX请求之间存在冲突,当我快速点击它并多次点击添加到购物车按钮时,它有时很有效。

此外,当我在与第一个页面不同的页面上时,它根本不起作用。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果AJAX的元素是.form-item,那么事件处理程序不会绑定到那些新元素,你需要通过文档委托事件,更改:

$(".form-item").submit(function(e) {
...

为:

$(document).on('submit', '.form-item', function(e) {
...