gpt4 book ai didi

javascript - Firefox 中的 event.srcElement

转载 作者:行者123 更新时间:2023-12-02 19:21:49 25 4
gpt4 key购买 nike

我正在更新一些旧代码以在 Firefox 中工作,但遇到了问题。

在代码中,有一个如下所示的函数:

function tableEnter() {

myLocation = event.srcElement;

}

这在 Firefox 中不起作用。我对此进行了相当多的研究,但我发现的大多数解决方案都需要将事件传递给此函数,然后对传递的 e 参数进行操作。 ...不幸的是,在我正在更新的代码中,我没有传递任何参数。

使 event.srcElemet 在 Firefox 中工作而不将任何参数传递给我的函数的解决方案是什么?

编辑:

好吧,问题变成了:我如何将事件对象传递给我的 tableEnter() 函数?

以下是代码当前正在执行的操作:

$(document).ready(function () {
//make table rows
//for every new table row...
myRow.onmouseover = tableEnter; (this is probably a bad name. it should be like..rowEnter. But this is the way I found the code)
});

现在的问题是,我如何将事件对象传递到 tableEnter() 中,以便我可以执行互联网上建议的操作以及下面的答案。

谢谢。

最佳答案

老实说,我不明白为什么您想要访问事件对象,而不将其作为处理程序的参数。但是,嘿,那只是我。虽然没有指定任何参数,但 FF 和 chrome 只是按照自己的意愿行事,并将事件对象传递给处理程序。所以:

function tableEnter()
{
var evt = window.event || arguments[0];
var src = evt.target || evt.srcElement;
}

就是这样。就我个人而言,我建议您做整个万维网正在做的事情:

function handler(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
}

由于您使用的是 FF,因此您不应该尝试过多偏离任何编码约定或标准,无论它们多么模糊。至少比没有标准或惯例根本要好。

<小时/>

鉴于您的更新,只需将函数定义更改为:

function tableEnter(e)
{
//though in jQuery, I suspect e is allready X-browser-proof
e = e || window.event;
//just leave ^^this^^ line out, and check in IE: alert(typeof e);
//if it alerts object, jQuery passed the event object for you
var theRow = this;//<-- this points to the row that triggered the mouseover
var jQRow = $(this);//gives you access to jQuery methods

var target = e.target || e.srcElement;//<-- mainly of importance in delegation
}

关于javascript - Firefox 中的 event.srcElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com