javascript怎么获取触发事件的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript怎么获取触发事件的对象相关的知识,希望对你有一定的参考价值。

代码如下:
function myfunction(event)
event = event ? event : window.event;
var obj = event.srcElement ? event.srcElement : event.target;
//这时obj就是触发事件的对象,可以使用它的各个属性
//还可以将obj转换成jquery对象,方便选用其他元素
var $obj = $(obj);
alert($obj.parent().attr("href"));
参考技术A 获取焦点触发事件

$("#id值").focus(function()
。。。。。//事件处理
);

如何获取触发事件时执行的 JavaScript 文件列表?

【中文标题】如何获取触发事件时执行的 JavaScript 文件列表?【英文标题】:How to get a list of JavaScript files that are executed when event is fired? 【发布时间】:2017-06-23 05:49:29 【问题描述】:

在复杂的系统中,如何获取在按钮单击或单击输入字段期间已触发的所有 JavaScript 文件的列表?

我可以用 chrome dev-tools 来做吗?或者还有其他解决方案吗?如果我可以用 chrome dev-tools 做到这一点,那该怎么做?

我面临的问题:我正在尝试查找包含我可以拦截的方法的文件,以便在按钮单击重定向到另一个页面之前添加我的自定义验证?文件名对我很有用,因为系统遵循干净的代码规则。

更新: 我找到了this tutorial,但提供的解决方案似乎都不起作用(我确信断点不起作用)。 @Carles Alcove 在推荐的帖子中建议的 Visual Event 扩展名,引导我到 knockout.js 文件。在该文件中,我按照@guest271314 的建议添加了console.trace() 函数(第二张图像是结果)。第一张图片是当我按照@user3297291 的建议使用开发工具检查按钮时

【问题讨论】:

【参考方案1】:

您可以在click 事件处理程序中包含console.trace()console.profile()console.profileEnd(),在consoleProfiles 选项卡中查看文件的行号DevTools

【讨论】:

Profiles 选项卡对我帮助很大(感谢您指出这一点)。我可以看到一些被触发的文件——唯一的问题是它并不完全准确。如果可以将分析器设置为在触发事件时开始记录,那将是完美的。【参考方案2】:

您可以通过执行以下操作检查附加到开发人员工具中元素的事件侦听器的概述:

元素上的鼠标右键 在上下文菜单中检查元素 单击开发人员右侧面板中的 Event Listeners 选项卡。工具 检查mouseupclick 事件。

您将看到附加的方法及其文件名。我不确定这是否适用于所有类型的事件侦听器(例如,如果事件绑定到父元素),但它是一种快速预测可能调用的方法。

【讨论】:

以上是关于javascript怎么获取触发事件的对象的主要内容,如果未能解决你的问题,请参考以下文章

IE10Chrome获取触发事件节点的源对象

如何获取触发事件时执行的 JavaScript 文件列表?

JavaScript学习

JS轻松获取对象之srcElement与target篇

DOM 基础事件(鼠标、键盘)

从事件对象里获取事件数据