JavaScript onClick在Firefox中不起作用

时间:2015-04-14 20:34:44

标签: javascript jquery

我有一个确认弹出窗口,当用户点击此链接时会打开:

<a onClick="openPopup('#popup1')">foo</a>

这是相关的JavaScript:

function openPopup(id) {

   $(id).show();
   event.preventDefault();
   $(id).addClass('is-visible');
   $(id).css("z-index", "999999999999999999999999");

}

在Safari和Chrome中,它运行正常。但是,在Firefox中,触发器似乎不起作用。有什么想法吗?

我已经尝试像这样更改链接:

 <a href="javascript:openPopup('#popup1');">foo</a>
但是没有变化。谢谢你的帮助!

2 个答案:

答案 0 :(得分:7)

  

然而,在Firefox中,触发器似乎不起作用。有什么想法吗?

Firefox不会使事件对象成为全局对象。您必须将它传递给事件处理程序,例如

onClick="openPopup('#popup1', event)"

由于您使用的是jQuery,因此您应该使用jQuery绑定处理程序,以便您也可以使用jQuery的扩充事件对象。

答案 1 :(得分:1)

我认为您可能遇到的问题是onClick中的大写C问题。尝试将其更改为onclick(全部小写)。

看到这个问题: onclick or onClick?

您也可能无法访问event对象: Access global event object in Firefox

但就你的例子而言,我认为你不需要它。

event.preventDefault会阻止浏览器在点击时尝试关注href链接(您的示例中没有href)。如果链接被跟踪,并且您的浏览器导航到另一个页面,您将无法看到可能发生的任何错误,并且弄清楚正在发生的事情可能会非常令人沮丧,因此如果您确实需要使用{{ 1}}确保它位于

中的函数的第一行