1

何らかの理由で、数値入力に追加の変更ハンドラーがあります。私は一生、それがどこから来ているのかを理解することはできません. このルージュイベントハンドラーの割り当てを追跡する方法を教えてもらえますか? クロム開発ツールで要素を調べてイベントハンドラー領域を見ると、(1) jquery と (2) 未定義を指しているだけです。

4

3 に答える 3

1

jquery によってバインドされたすべてのイベントは$( target ).data( 'events' );にあります。イベントの名前には関数の配列が含まれているため、キーを持つオブジェクトを表します。

たとえば、stackoverflow のコンソールでこれを直接試してください $('a').data('events').click[0].handler

jquery オブジェクトによって割り当てられた各イベント タイプのカルバックを一覧表示するには、次を試してください。

$.each( $( youSelector ).data('events'), function(v,k){
   console.log( v +":");
   $(this).each( function(){
     console.log( this.handler );
   });
   console.log("------------------");
});

それらがどのファイルから来たかを見つける方法は、リソースタブの検索入力でコンソールのハンドラーコードの一部から検索することです:)

于 2012-09-10T22:04:40.000 に答える
1

他のハンドラーが望ましくない場合は、いつでも使用できますunbind

$("#id").unbind('change').bind("change", handler);

もちろん、考えられるすべてのケースを考慮する必要があるため、完全なソリューションは次のようになります。

$("#id")
    .off('change')
    .die('change')
    .unbind('change')
    .on("change", handler);
于 2012-09-10T21:58:15.240 に答える
0

これらの答えは私が探していたものではありませんでしたが、ハンドラーがどこから来ているのかを知ることができました。私はwebshimsとoverlayと呼ばれるjqueryツールを使用しています。どうやら、オーバーレイは、ページがレンダリングされたときと、オーバーレイが実際に適用されたときに、scriptタグのコードを実行しているようです。

于 2012-09-10T22:27:35.980 に答える