javascript - 事件对象不是只用 Firefox 定义的(IE 和 Chrome 工作)

标签 javascript html internet-explorer google-chrome firefox

<分区>

<a class="lnk" href="#" onclick="showItem();">
    <span data-id="27">TEST</span>
</a>

function showItem()
{
    var itid = event.target.dataset.id;
    alert(itid);
}

如果你尝试 this jsfiddle code您可以看到,对于 IE (11) 和 Chrome,事件对象被正确评估,但是对于 Firefox (32.0),您会收到错误消息(ReferenceError:事件未定义)

这是 Firefox 的错误还是 IE 和 Chrome 中的不同事件对象生命周期? 然而,由于在 IE 和 Chrome 中它正在工作,我认为这是一个问题。 关于解决方法?

p.s: 在jsfiddle中,只有firefox,代码选择仍然有问题(运行后无法选择代码。

最佳答案

您应该将 event 作为参数传递给函数:

<a class="lnk" href="#" onclick="showItem(event);">
    <span data-id="27">TEST</span>
</a>

function showItem(e)
{
    e = e || window.event;
    var itid = e.target.dataset.id;
    alert(itid);
}

将其作为全局变量访问是 Chrome 复制的 IE 功能,但我认为这不是标准的 Javascript。

关于javascript - 事件对象不是只用 Firefox 定义的(IE 和 Chrome 工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25775587/

相关文章:

javascript - Next.js - 当 Router.push() 或 getInitialProps() 完成时执行回调

javascript - 如何绕过 Jscript 版本检查?

javascript - IE7 在某些机器上崩溃,调试栏中出现错误,但看不到 'showstopper'

javascript - 单击另一个输入后如何防止我的日期选择器重新聚焦

javascript - QWebEngine - 获取当前最大滚动值

javascript - AJAX:我如何绑定(bind) KeyUp 上的自动完成功能才能使用键盘键

jquery - 在隐藏的输入字段中键入内容

javascript - 主 div 不能随动态内容正确缩放

javascript - 发生异常时,应用程序停止响应自定义错误页面

javascript - 使用javascript点击创建新的表单字段