【问题标题】:JavaScript onClick does not work in FirefoxJavaScript onClick 在 Firefox 中不起作用
【发布时间】:2015-04-15 05:14:12
【问题描述】:

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

<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>

虽然没有变化。感谢您的帮助!

【问题讨论】:

  • 如果您使用 jQuery 作为标签指示,更好的做法是在 $('selector).on('click', function(){}) 内联中捕获点击事件javascript 成为主要的维护噩梦。

标签: javascript jquery


【解决方案1】:

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

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

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

由于您使用的是 jQuery,您应该将处理程序与 jQuery 绑定,以便您也可以使用 jQuery 的增强事件对象。

【讨论】:

  • 感谢您的回答!我不太确定如何使用事件处理程序,应该放哪个元素?
  • 我不明白你的意思。
  • 嗯,你在函数调用中添加“事件”,函数也必须调整,对吧?
  • 是的。 function openPopup(id, event) {
【解决方案2】:

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

看到这个问题: onclick or onClick?

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

但你的例子我认为你不需要它。

event.preventDefault 防止浏览器在单击链接时尝试跟踪链接的href(您的示例中没有href)。如果链接被点击,并且您的浏览器导航到另一个页面,您将没有机会看到可能发生的任何错误,并且弄清楚发生了什么可能会非常令人沮丧,所以如果您确实需要使用 @987654329 @确保它在它所在函数的第一行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多