如何找出对象的onclick事件调用的javascript函数?

时间:2012-05-17 15:51:05

标签: javascript

如何找出对象的onclick事件调用的javascript函数?更好的是,我可以找出哪个函数包含在.js文件中吗?

6 个答案:

答案 0 :(得分:54)

我使用Chrome的开发人员工具:

Event Listener Breakpoints in Google Chrome's developer tools

选中click框,然后单击要为其找到处理程序的页面上的元素。如果您使用的是jQuery(或类似的库),则可能需要在访问代码之前逐步执行它们。

答案 1 :(得分:3)

你可以这样做

使用Javascript Demo on JsFiddle

div1 = document.getElementById('div1');

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

使用jQuery Demo on JsFiddle

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

alert($('#div1').attr('onclick'))​;

答案 2 :(得分: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;
    }
}

但老实说,我认为这有点矫枉过正。

答案 3 :(得分:1)

这取决于event的附加方式。

如果你在没有像jQuery这样的东西的情况下绑定onclick,你可以这样做:

var obj = document.getElementById('elementId');
console.log(obj.onclick);

答案 4 :(得分:0)

我使用这个Visual Event脚本执行此操作,该脚本巧妙地突出显示哪些事件由哪些元素订阅哪些元素。

要查找代码的源代码,只需使用FireBug或类似的浏览器开发人员工具搜索函数名称。

答案 5 :(得分:0)

我有不同的方法。我重载onclick函数并在真正的函数之前添加我的调试器。

这是元素

<div id="div1">​

将此JavaScript写入开发者控制台

var clickFn = $("#div1").click; 

$("#div1").click(function(){ 
    debugger; 
    clickFn(); 
});