2

jQuery を使用した Yii アプリケーションの開発に問題があります。Firebug を使用して、タブをクリックすると、ナビゲーターが多くの呼び出しを行っていることがわかります。ホームページに 2 回、元の目的地に 4 回などです。しかし、どうなるかわかりません。呼び出しが発生し、どこにあるのかわかりません。ただし、デバッグして呼び出しが行われた場所を正確に確認できれば、それを解決できると確信しています。

私の質問: この場合、jQuery をどのようにデバッグしますか?

編集:ご協力ありがとうございます。この問題について詳しく説明します。Webページのデザインです。[ゾーン] タブをクリックすると、contentarea_zone に Web ページが読み込まれます。タブもあります (タブは、jQuery も使用する Yii の Bootstrap 拡張機能から提供されています)。

ここに画像の説明を入力

「説明」タブをクリックすると、Firebug コンソールに呼び出しが表示されます。

ここに画像の説明を入力

しかし、どこから来たのかわかりません。Firebug コンソールの右側を読むと、「jquery.js」と行番号が表示されますが、jQuery ライブラリには 9405 行しかありません。Firebug が 10079、10692 などの行で呼び出しを報告する理由がわかりません。

私は本当に迷っています。問題が不明のままである場合は、このケースをデバッグするための適切なツールまたは方法をお勧めしていただければ、非常に助かります...

編集 2:あなたの推薦のおかげで、Firebug とそのオプションを使い始めました。呼び出しが繰り返される原因となっているライブラリは、bootstrap.js であることがわかりました。タブ「説明」のロードが終了した時点で、「コールバック」が蓄積されているようです。しかし、これらのコールバックがどこから来るのかはまだわかりません。いくつかのアイデア?

4

2 に答える 2

3

キーワードを置く

debugger;

コードをデバッグする場所から。コードの実行はそこで中断され、firebug コンソールからステップインして、コードを実行し、コードの実行を段階的に追跡できます。

ヒントとコツ

于 2013-03-13T04:08:20.603 に答える
0

さて、いくつかの点で Firebug とキーワード「デバッガー」を使用した後、問題の原因を見つけることができました。クリックがバブリングし、トリガーされるべきではないイベントがトリガーされました。のような単純な行

e.stopImmediatePropagation()

問題を修正し、最初のクリック後に jQuery がバブリングを停止するようにしました。

回答ありがとうございます。

于 2013-03-21T06:08:00.987 に答える