49

オブジェクトの onclick イベントによってどの JavaScript 関数が呼び出されているかを調べるにはどうすればよいですか? さらに良いことに、関数が含まれている .js ファイルを見つけることはできますか?

4

6 に答える 6

68

これには Chrome の開発者ツールを使用します。

Google Chrome の開発者ツールのイベント リスナー ブレークポイント

ボックスをオンにclickしてから、ハンドラーを検索するページ上の要素をクリックします。jQuery (または同様のライブラリ) を使用している場合は、自分のコードに到達する前に、そのコードをステップ実行する必要がある場合があります。

于 2012-05-17T16:00:46.527 に答える
4

あなたはこのようにすることができます

JsFiddleのJavascriptデモを使用

div1 = document.getElementById('div1');

alert(div1.getAttribute("onclick"));​

JsFiddleのjQueryデモを使用

<div id="div1" onclick="myfun();" >​

alert($('#div1').attr('onclick'))​;
于 2012-05-17T15:55:31.380 に答える
1

これは、どのイベントがどの要素のどの関数によってサブスクライブされているかをきちんと強調するこのビジュアルイベントスクリプトを使用して行います。

コードのソースを見つけるには、FireBugまたは同様のブラウザ開発ツールを使用して関数名を検索します。

于 2012-05-17T15:55:35.263 に答える
1

onclickイベントが呼び出されたファイルを見つけることはできませんが、呼び出されmyObject.onclickている関数は提供されます。いいえ、これにはjQueryは必要ありません。

関数の名前を取得する限り、それはもう少し複雑です。あなたはおそらくこのようなことを試すことができます:

var myFunc = myObject.onclick, myFuncName = "";

for(prop in window) {
    if(window.hasOwnProperty(prop) && window[prop] === myFunc) {
        myFuncName = prop; // myFuncName is now the name of the function. This only works if you didn't assign an anonymous function to the click handler.
        break;
    }
}

しかし、正直なところ、それは少しやり過ぎだと思います。

于 2012-05-17T15:55:54.173 に答える
1

それは、がどのようにevent取り付けられているかによって異なります。

jQueryのようなものなしでバインドしている場合は、onclick次のようにすることができます。

var obj = document.getElementById('elementId');
console.log(obj.onclick);
于 2012-05-17T15:56:50.447 に答える