在firefox中'event'相当于'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在firefox中'event'相当于'相关的知识,希望对你有一定的参考价值。

我使用以下代码,它在Chrome中运行得非常好。

function dayBind(xyzValue) {
    if(event.type == 'click')
       alert('Mouse Clicked')
}

请注意,没有传递给函数的“event”变量,但在chrome的情况下它仍然可用。但是当我使用firefox时,我的'事件'未定义。我尝试使用以下变通方法:

var e=arguments[0] || event;

也:

var e=window.event || event;

但它们都不适合我。 Firefox中是否存在“事件”等价物?

答案

因为IE和Chrome将事件放在全局对象window中,所以你可以得到它。在firefox中,您需要让第一个参数成为事件。

function dayBind(event, xyzValue) {
    var e=event || window.event;
    if(event.type == 'click')
       alert('Mouse Clicked')
}
另一答案

如果您使用“onclick”属性设置处理程序(由于您标记了问题“jQuery”,您真的应该考虑不这样做),您必须明确地传递它:

<button type=button onclick='whatever(event)'>Click Me</button>
另一答案

如果您需要跨浏览器工作,只需使用arguments对象:

function dayBind() 
  {
  var e=arguments[0];

  if(!!e && e.type === 'click')
    {
    alert('Mouse Clicked') 
    }
  }

参考

另一答案

我正在使用插件的回调函数。我不能自己打电话。

一个简单的问题提出你的建议:当你写:onclick="whatever(event)"你正在用onclick属性的值写javascript,对吗?

为什么不能在其他函数中进行相同的函数调用,如下所示:

function foo(){ whatever(event); // this is also javascript }

//但是在FireFox 10.0.2中这对我不起作用

“onclick”属性中的代码应该被视为浏览器为您创建的函数的一部分。该功能自动具有“event”参数。像我在答案中所做的那样编写属性会导致该参数在您的其他函数上传递。

实际上,您应该阅读有关jQuery API的信息,并使用它来绑定事件处理程序,而不是使用“onclick”和其他类似的属性。

以上是关于在firefox中'event'相当于'的主要内容,如果未能解决你的问题,请参考以下文章