2012-09-13 9 views
11

私はこの面白いバグが発生していると私はそれをデバッグする方法については紛失しています。私のサイトにページが読み込まれるたびに、スクロールイベントが発生します。ページは目に見える形で動かず、マウスやキーボードを使ってスクロールしているわけではありません。私は私が私のコンソールのログではほとんど「jQuery.Event」メッセージが表示されますすべてのページに案の定Javascriptスクロールイベントのソースを見つける方法

$(window).bind('scroll', function (e) {console.log(e)}); 

を読み取るコードの行を入れているため、スクロールイベントが発火していることを知っています。私がポイントを破ると、私の呼び出しスタックはjQuery.even.dispatch.apply(eventHandle.elem、arguments)で終わります。

ここに質問があります。このスクロールイベントを引き起こしていることを知るにはどうすればよいですか?スクロールがユーザーによってトリガーされたかスクリプトによってトリガーされたかを教えてくれるjqueryイベントオブジェクトに属性がありますか?この状況では、これを理解するためにあなたは何をしますか?

+0

あなたがお使いのブラウザでブレークポイントを設定してみてください、手動でソースを絞り込むしようとすることができます:scrollイベントが関与している場合には

。 – adamdport

+0

行を読んで、「私が呼び出しスタックをjQuery.even.dispatch.apply(eventHandle.elem、arguments)で終了すると、それは私に働きかけてくれません」 – aamiri

+0

これはスタックオーバーフローの問題かもしれませんか?私はjQueryのイベントハンドリングをこれまでにやっているのを見ました...コールスタックはどれくらいですか? –

答えて

2

まあ、jQueryは隠し属性内のすべてのイベントバインディングデータを隠すようです。 This postには、少なくとも何が実行されているかを知る方法が記述されています。ハンドラがどこのファイルにあるかを調べることはあなたの責任です。

var scrollHandlers = jQuery._data(window, 'events')['scroll']; 
for (var i = 0; i < scrollHandlers.length; i++) { 
    console.error(scrollHandlers[i].handler); // or console.debug, whatever proves they exist 
} 
+0

彼のスクロールはおそらくonloadやsomesuchでトリガーされており、スクロールハンドラーしか見つからないので、実際にはこの質問には答えません。しかし、とにかく 'jQuery._data(window、 'events')'は学ぶのが大変だったからです。 – dlsso

関連する問題