3

私はスパゲッティコード化されたウェブサイトに取り組んでいます。特定の要素でいくつかの奇妙なアクションが表示されます。Chrome イベント リスナーには何もリストされていません。

それを見る他の方法はありますか?コンソールに次のように書きます。

$('#myElement').getEvents(); //Not a real code
4

1 に答える 1

1

別のオプションとして、次のフックを使用してjQueryバインディングと要素の間を移動できます。

(function($){
    var event_add_orig = $.event.add;
    $.event.add = function(){
        console.log('Added event (' + arguments[0].tagName + '::' + arguments[1] + ')');
        // arguments[0] // elem
        // arguments[1] // types
        // arguments[2] // handler
        // arguments[3] // data
        // arguments[4] // selector
        event_add_orig.apply(this, arguments);
    };
})(jQuery);

そうすれば、ページ全体に適用されているすべてのバインディングを確認できます。次に、より多くのロジックを使用して、指定されたイベントまたは要素にそれを抽出できます。これは、ページ上の他の何かが実行される前に定義する必要があることに注意してください。ただし、もちろん、jQueryが定義された後です。

于 2012-10-18T13:47:21.783 に答える