如何找出对象调用的javascript函数';什么是单打比赛?

如何找出对象调用的javascript函数';什么是单打比赛?,javascript,Javascript,如何找出对象的onclick事件调用的javascript函数?更好的是,我能找出该函数包含在哪个.js文件中吗?您可以这样做 使用Javascript 使用jQuery ​ 警报($('div1').attr('onclick'))​; 我使用这个脚本来完成这项工作,它清晰地突出显示了哪些事件是由哪些元素上的哪些函数订阅的 要找到代码的来源,只需使用FireBug或类似的浏览器开发工具来搜索函数名。您将无法找到调用onclick事件的文件,但myObject。onclick将为您提供正在调用的

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

您可以这样做

使用Javascript

使用jQuery

​
警报($('div1').attr('onclick'))​;
我使用这个脚本来完成这项工作,它清晰地突出显示了哪些事件是由哪些元素上的哪些函数订阅的


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

您将无法找到调用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;
    }
}

但老实说,我认为这有点过分了

这取决于
事件的附加方式

如果要绑定到
onclick
,而不使用jQuery之类的工具,则可以执行以下操作:

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

我使用Chrome的开发工具来实现这一点:


选中
单击
框,然后单击页面上要查找处理程序的元素。如果您使用的是jQuery(或类似的库),那么您可能需要在进入自己的库之前逐步浏览它们的代码。

我有一种不同的方法。我重载onclick函数并在实际函数之前添加调试器

这就是元素

<div id="div1">​

清楚地说,您有一个DOM对象,您想知道它在单击时做什么?您是否尝试过
someObject.onclick
someObject.getAttribute(“onclick”)
?您无法知道它来自哪个文件,因为JS代码不知道它来自哪个文件。@Diodeus的可能副本:问题不同-它是关于使用jQuery获取绑定事件,而OP正在寻找浏览器devtool。可能的重复项我在问题的任何地方都看不到jQuery标记。修改了我的答案,我希望现在一切正常。这将要求他在代码中添加警报()。调试javascript的糟糕方法。@Gjohn,警报只是为了显示输出,如果不需要,就不应该使用它。我从来不知道chrome中存在这种情况。这真是太棒了,为我回答了这个问题。谢谢你告诉我们这个工具,但是如果这个方法将指向jQuery库中的代码行,那么这个方法有什么用处呢。如何知道我的代码的哪一部分正在运行。@whitelettersandblankspaces目前我知道的唯一方法是逐步浏览jQuery的代码,直到找到自己的代码为止。你如何知道调用回调的是什么事件侦听器类型?回到过去,开发人员不相信noob和开发工具
var obj = document.getElementById('elementId');
console.log(obj.onclick);
<div id="div1">​
var clickFn = $("#div1").click; 

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