1

この質問に関する素晴らしい(まだ残酷に受け入れられていない)投稿を使用してください:jqueryを使用してページに接続されたすべてのjavascriptイベントをリストするjQueryイベントキャッシュを照会して、接続されているイベントを読み取ることができることを発見しました。などに配線します。

また、イベント バインディングを画面上の実際の HTML 要素にオーバーレイするブックマークレットである Visual Event もあります。

私が今必要としているのは、自分のページに接続されているイベントの影響をテストするために、 jQuery が知っているすべてのイベントを文字通りアンバインド、キル、ダイ (など)することですが、これはすべてを知らずに達成するのは難しいようです。コンテキスト (例: セレクター、ハンドラー) - その理由は、「一般的な」ページのパフォーマンス、フォームへの入力、スクロール、折りたたみ/展開などをテストするためです。

上記で投稿した質問のスクリプトを使用してすべてのアイテムを取得してから削除することで、これを行うために「独自の」スクリプトを実行できる可能性がありますが、これが可能かどうか、または回避する最善の方法かどうかはわかりませんそれ-これを提案することで、既存の車輪を再発明していることを願っています。

私が本当に欲しい/必要なものは次のとおりです。

  $(document).removeAllEventsThatAreWiredUpToAnything();

...しかし、私はそれが存在しないことを知っています。

これを行う簡単な方法はありますか?JavaScript を無効にすることは実際にはオプションではありません。私のページは、ロード時に起動する ajax 呼び出しでかなり広範囲に構築されているため、テストとしてはそれほど役に立ちません。

直接的な回答ではなく、喜んで解決策を受け入れます。イベントの過剰使用によるパフォーマンスへの影響を可能な限り迅速に理解する必要があります。

よろしく-SB

4

1 に答える 1

2

これ:

$('*').unbind();

すべての要素のすべてのイベント タイプのバインドを解除します。

于 2011-10-12T08:09:11.370 に答える