-1

我正在处理产品列表页面更多产品加载无限滚动 问题是当新页面加载时,当用户单击“添加到购物车”时,加载页面上的 jQuery on click 事件将不会执行。如果使用 jquery load() 加载该脚本,它就会工作。但无限滚动正在使用我不知道的其他东西。

$(document).ready(function() {
  jQuery_1_6_1('#mycontent').infinitescroll({
    navSelector: "#mynext:last",
    nextSelector: "#mynext:last",
    itemSelector: "#mycontent",
    debug: false,
    dataType: 'html',
    maxPage: <?php echo $pages_load;?>,
    path: function(index) {
        return "pages/index" + index + ".html";


      }
      // appendCallback : false, // USE FOR PREPENDING
  }, function(newElements, data, url) {

  });
});
4

1 回答 1

2

根据我的评论:只需使用附加到文档、在启动时加载一次的委托事件处理程序来处理单击事件。它们仍然会在稍后加载的元素上触发。

假设您的添加到购物车按钮有一个“addtocart”类,您可以执行以下操作:

$(document).on('click', '.addtocart', function(){
   // handle click here
});

它通过将事件委托给祖先元素(例如document)来工作,然后将 jquery 选择器应用于气泡链中的元素,然后将事件函数应用于导致事件的匹配元素。

委托事件的结果是元素不需要在事件注册时存在,而只在事件时存在

于 2016-11-01T17:34:43.427 回答