-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 に答える