1. ホーム
  2. jquery

スクロール中にJquery .on('scroll') がイベントを発生させない

2023-08-20 11:48:38

質問

をスクロールしてもScrollイベントが発生しません。 ul . jQueryのバージョンは1.10.2を使用しています。を読み込んでいるときに ul を読み込んでいるので、私は $('ulId').on('scroll', function() {}); や他のライブメソッドを使用することができませんでした。解決策を見つけるために私を助けてください。

$(document).on( 'scroll', '#ulId', function(){
    console.log('Event Fired');
});

どのように解決するのですか?

あなたはおそらく # を指定する必要があります。 # の前に idulId

$(document).on( 'scroll', '#idOfDivThatContainsULandScroll', function(){ console.log('Event Fired'); });

編集

スクロールイベントはイベントデリゲーションに使用されるDOMでバブルアップしないため、上記は動作しません。 なぜデリゲートはスクロールのために動作しないのでしょうか? .

しかし、モダンブラウザのIE8では、別の方法でそれを行うことができます。jqueryで委譲するのではなく、javascriptでイベントキャプチャを使うことで、委譲することができます。 document.addEventListener で、第3引数を true バブリングとキャプチャーがどのように作用するかは、次のようになります。 チュートリアル .

ライブデモ

document.addEventListener('scroll', function (event) {
    if (event.target.id === 'idOfUl') { // or any other filtering condition        
        console.log('scrolling', event.target);
    }
}, true /*Capture event*/);

イベントの委譲が必要ない場合は、スクロールイベントを document .

ライブデモ

$("#idOfUl").on( 'scroll', function(){
   console.log('Event Fired');
});