我正在使用以下代码,它在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中是否存在“事件”等同物?
答案 0 :(得分:10)
因为IE和Chrome将事件放在全局对象window
中,所以你可以得到它。在firefox中,你需要让第一个参数成为事件。
function dayBind(event, xyzValue) {
var e=event || window.event;
if(event.type == 'click')
alert('Mouse Clicked')
}
答案 1 :(得分:9)
如果您使用“onclick”属性设置处理程序(由于您标记了问题“jQuery”,您真的应该考虑不这样做),您必须明确地传递它:
<button type=button onclick='whatever(event)'>Click Me</button>
答案 2 :(得分:0)
如果您需要跨浏览器工作,只需使用arguments
对象:
function dayBind()
{
var e=arguments[0];
if(!!e && e.type === 'click')
{
alert('Mouse Clicked')
}
}
<强>参考强>
答案 3 :(得分:0)
我正在使用插件的回调函数。我自己不能这样称呼。
一个简单的问题建议:在编写onclick="whatever(event)"
时,您正在使用onclick
属性值编写JavaScript,对吗?
为什么不能在其他这样的函数中进行相同的函数调用:
function foo(){ whatever(event); // this is also javascript }
//但这在FireFox 10.0.2中对我不起作用
“ onclick”属性中的代码应被视为浏览器为您创建的功能的一部分。该功能自动具有“事件”参数可用。像我在答案中那样写属性会导致该参数在您的其他函数上传递。
确实,您应该阅读有关jQuery API的信息,并使用它来绑定事件处理程序,而不要使用“ onclick”和其他类似的属性。