2017-02-23 7 views
2

最後の例のhereのような非常に長いブートストラップモーダルがあります。私は、モーダルが開いているときにユーザーがスクロールしたかどうかを検出したい。私はBootstrapモーダルでスクロールイベントを聴くにはどうすればいいですか?

document.addEventListener('scroll', function(event) { 
     console.log("Scrolling"); 
}); 

を試してみました

もこれらのすべては、私は、モーダルを開くまで作業している

$(document).on("scroll","#myModalID",function() { 
    // I tried targeting .modal-body and .modal-content too 
    console.log("Scrolling"); 
}); 

$(window).on("scroll",function() { 
    console.log("Scrolling"); 
}); 

を試してみました。しかし、モーダルが開いているときは、上記のコードは動作しません。モーダルとスクロールを閉じると再び動作します。

答えて

1

scrollイベントはバブリングされないので、親要素(documentなど)にハンドラを接続することはできません。また、jQueryで.onというイベント委任を使用することもできません。

ただ、このように、(あなたはそのIDが定義されているので)直接要素を選択します。

document.getElementById('myModalID') 
     .addEventListener('scroll', function(event) { 
    console.log("Scrolling"); 
}); 

またはjQueryのために:

$('#myModalID').on("scroll", function() {  
    console.log("Scrolling"); 
}); 

動作するはずです(と私はすでにそれを試してみたこと)。

+1

男、あなたは人生の節約になります:) –

+0

@Hopeless Reactではどうしますか? – claireablani

+0

@claireablani申し訳ありません私はちょうど反応について聞いたことがあるが、それを学んだり経験したことはありません。 – Hopeless

関連する問題