如何找出对象的onclick事件调用的javascript函数?更好的是,我可以找出哪个函数包含在.js文件中吗?
答案 0 :(得分:54)
我使用Chrome的开发人员工具:
选中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();
});