我有一个确认弹出窗口,当用户点击此链接时会打开:
<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>
但是没有变化。谢谢你的帮助!
答案 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}}确保它位于