7

この質問に対する最新の回答を探しています。

Event.observers は Prototype 1.6 以降では (おそらくメモリ リークを避けるために) 使用されなくなったようですが、どのイベント リスナーが要素にアタッチされているかを追跡するにはどうすればよいでしょうか?

Firebug には「次のブレーク」ボタンがあることは知っていますが、body 要素には、別の特定の要素で必要な動作に到達する前に実行されるマウス リスナーがいくつかあるので、他の方法はありますか?

4

2 に答える 2

7

物事は要素ストレージを介してルーティングされるようになりました:)

Element.getStorage(yourElement).get('prototype_event_registry')はプロトタイプの のインスタンスを提供するHashので、ハッシュで行うことは何でもできます。

// to see which event types are being observed
Element.getStorage(yourElement).get('prototype_event_registry').keys();

// to get array of handlers for particular event type
Element.getStorage(yourElement).get('prototype_event_registry').get('click');

// to get array of all handlers
Element.getStorage(yourElement).get('prototype_event_registry').values();

// etc.

これらは文書化されていない内部の詳細であり、将来変更される可能性があることに注意してください。したがって、おそらくデバッグ目的以外では、それらに依存しません。

于 2009-09-14T17:42:23.683 に答える