2017-08-31 4 views
1

window.scrollイベントを使用して、スクロールのbuttomに達したときにdivにコンテンツをロードしています。jqueryを使用してアンバインドした後にウィンドウをスクロールできない

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { 
     $(window).unbind('scroll'); 
     loadMoreCommentsOnArticle(); 
    } 
}); 

    function loadMoreCommentsOnArticle(){ 
       $(window).bind('scroll'); 
       var dynamicData = fetchData(); 
       $('#parentElement').append(dynamicData); 
} 

スクロールは一度最初にバインドした後に結合しません。たぶん$(window).unbind( 'scroll')で。しかし、私は$(window).bind( 'scroll')を使ってもう一度スクロールをバインドしようとしています。それは動作していません。

$(ウィンドウ).unbind( 'スクロール')を使用しない場合。スクロールイベントは、すぐには何度も発砲しています。

私はあなたが実行するための機能を提供していないloadMoreCommentsOnArticle()であなたが再結合し、スクロールイベントので、問題があるロリー

var $window = $(window); 
function windowScroll() { 
    if ($window.scrollTop() + $window.height() > $(document).height() - 100) { 
    window.off('scroll'); 
    loadMoreCommentsOnArticle(); 
    } 
} 
$window.scroll(windowScroll); 
+0

$(ドキュメント).ready()内のそれを書く関数内でバインドを書き込みません。 – Sindhoor

+0

さらにもう1つはloadMoreCommentsOnArticle()です。この関数はまったく呼び出されません!! – Sindhoor

+0

@Sindhoor document.readyは、このサンプルでは必ずしも必要ではありません。すべてが 'window'からヒンジされています。また、関数は 'if'条件が満たされたときに' scroll'ハンドラ内で呼び出されます。 –

答えて

0

に従って、この方法を使用しています。スクロール・ロジックを独自の関数に抽出してバインディング/リビルドを容易にすることで、この問題を解決できます。

また、bind()unbind()は非推奨です。代わりにon()off()を使用してください。

var $window = $(window); 
 

 
function windowScroll() { 
 
    if ($window.scrollTop() + $window.height() > $(document).height() - 100) { 
 
    $window.off('scroll'); 
 
    loadMoreCommentsOnArticle(); 
 
    } 
 
} 
 

 
$window.scroll(windowScroll); 
 

 
function loadMoreCommentsOnArticle() { 
 
    $window.on('scroll', windowScroll); 
 
    $('#parentElement').append(fetchData()); 
 
} 
 

 
function fetchData() { 
 
    console.log('loading data...') 
 
    return '<div>More data...</div>'; 
 
}
#parentElement div { 
 
    height: 3000px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="parentElement"> 
 
    <div>Some data...</div> 
 
</div>

+0

スクロールがまったく呼び出されません。 –

+0

コンソールのエラーを確認してください。 –

+0

window.scrollTopは関数ではありません –

関連する問題