来自 MDN 文档:
警告:在 CSS 中对非 SVG 元素使用指针事件是实验性的。该功能曾经是 CSS3 UI 草案规范的一部分,但由于许多未解决的问题,已被推迟到 CSS4。
在这里阅读更多内容 https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events, 基本上,pointer-events
在非 SVG(可缩放矢量图形)上是非标准的。
如果您检查链接页面上的浏览器支持表(大约向下三分之二),您会注意到 IE 对非 svg 的支持是ziltsh, 杰克深蹲, naut,...不支持,也就是说。
经过一番挖掘,我确实遇到了本文 http://www.vinylfox.com/forwarding-mouse-events-through-layers/这确实允许您通过使用层来模仿行为,并且,感谢这个帖子 https://stackoverflow.com/questions/5855135/css-pointer-events-property-alternative-for-ie, 我发现这个 JS-bin http://jsbin.com/uhuto/1/edit这可能有帮助...
然而,在 IE(以及 Opera,据我所知所有浏览器)中,您可以简单地在元素上强制使用一种类型的光标:
a, a:hover, a:visited, a:active, a:focus /*, * <-- add all tags?*/
{
cursor: default;/*plain arrow*/
text-decoration: none;/*No underline or something*/
color: #07C;/*Default link colour*/
}
结果应该与以下结果非常相似pointer-events: none;
Update:
如果您想阻止 IE 中的单击事件(正如 shasi 指出的那样,在其他浏览器中会被阻止),只需添加一个委托单击事件的事件侦听器即可。
目前,我假设您的目标是所有a
要素:
var handler = function(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
if (target.tagName.toLowerCase() === 'a')
{
if (!e.preventDefault)
{//IE quirks
e.returnValue = false;
e.cancelBubble = true;
}
e.preventDefault();
e.stopPropagation();
}
};
if (window.addEventListener)
window.addEventListener('click', handler, false);
else
window.attachEvent('onclick', handler);
这应该会阻止锚元素上的所有点击事件。