javascript – jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1443字,纯文字阅读大概需要3分钟。
内容图文
![javascript – jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?](/upload/InfoBanner/zyjiaocheng/715/ab60649dbe374f00b5d7a389135e28b1.jpg)
我的链接上有一个onclick属性:
<a href="#" onclick="myFunc(1,2,3)">click</a>
这指向JavaScript中的这个事件处理程序:
function myFunc(p1,p2,p3) {
//need to refer to the current event object:
alert(evt.type);
}
由于事件对象“evt”未传递给参数,是否仍然可以获取此对象?
我试过window.event和$(window.event),但两者都是未定义的.
任何的想法?
解决方法:
Since the event object “evt” is not passed from the parameter, is it still possible to obtain this object?
不,不可靠. IE和其他一些浏览器使它可用作window.event(不是$(window.event)),但这是非标准的,并不是所有浏览器都支持(着名的是,Firefox不支持).
你最好将事件对象传递给函数:
<a href="#" onclick="myFunc(event, 1,2,3)">click</a>
这甚至可以在非IE浏览器上运行,因为它们在具有事件变量的上下文中执行代码(并且因为事件解析为window.event而在IE上工作).我在IE6,Firefox,Chrome,Safari和Opera中尝试过它.示例:http://jsbin.com/iwifu4
但最好的办法是使用现代事件处理:
HTML:
<a href="#">click</a>
使用jQuery的JavaScript(因为你使用的是jQuery):
$("selector_for_the_anchor").click(function(event) {
// Call `myFunc`
myFunc(1, 2, 3);
// Use `event` here at the event handler level, for instance
event.stopPropagation();
});
…或者如果你真的想将事件传递给myFunc:
$("selector_for_the_anchor").click(function(event) {
myFunc(event, 1, 2, 3);
});
选择器可以是标识锚点的任何东西.你有一个very rich set可供选择(几乎所有的CSS3,加上一些).您可以向锚点添加id或类,但同样,您还有其他选择.如果你可以使用它在文档中的位置,而不是添加一些人工的,伟大的.
内容总结
以上是互联网集市为您收集整理的javascript – jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?全部内容,希望文章能够帮你解决javascript – jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。