2012-04-02 25 views
5

jQuery 1.7では、イベントシステム全体が一から書き直されているかもしれません。コードベースははるかに高速で、新しい.on()メソッドを使用すると、イベントハンドラを配線する際に多くの統一性があります。内部イベントデータにアクセスし、任意の要素に登録されているが、最近、この内部情報は、次のシナリオに基づいて隠されているもののイベントinvestiateできるようにするために使用jquery内部データにアクセスするには?

ワン...

それはと思われます"プライベート"データは常に.data(jQuery.expando)に保存されます。 - オブジェクトの削除でもキャッシュを削除する必要がある "オブジェクト"では、これは意味があります。ノードの分野で

しかし、私は)彼らは$ .fn.data(によって返されたオブジェクトを汚染しないように、私たちは別々の(プライベート)キャッシュにこれらの「プライベート」メンバーを保存するべきだと思います」

内部データを隠すための上記の変更に同意しますが、この情報へのアクセスがデバッグやユニットテストに役立つことがわかりました。jQuery 1.7で内部jqueryイベントオブジェクトを取得する新しい方法は何ですか? ?

答えて

3

jQuery 1.7では、イベントは内部のを介してアクセス可能な別の場所に格納されますメソッド(ただし、このメソッドはソースコード内でのみ内部使用のためと記載されていますので、自己の責任において使用し、ライブラリの将来のバージョンで変更または消滅する準備をしてください)。

要素に登録されたイベントを取得するには、その要素に対して$._data()を呼び出して、返されたオブジェクトのeventsプロパティを調べます。例:

$("#yourElement").click(function() { 
    // ... 
}); 

console.log($._data($("#yourElement")[0]).events); 
関連する問題