As I have seen here,过滤器可用于模拟
的跨浏览器版本pointer-events: none;
然而,这在IE9中不起作用,在IE9中的“模拟IE8”版本中也不起作用。但是,IE8的本机安装可以很好地处理它。是否有任何解决方案使其适用于IE9?
答案 0 :(得分:9)
你是对的 - 已经从IE9中删除了AlphaImageLoader过滤器。 这样做是为了不与符合标准的方法冲突。在这种情况下, pointer-events: none
,now works in IE9。
如果您正在使用条件注释来针对过滤器修复程序定位IE,请将它们更改为仅定位到IE8及以下版本。尝试将 <!--[if IE]>
更改为<!--[if lte IE 8]>
编辑:我再次遇到此问题,似乎pointer-events: none
在IE9中无效(无论如何都不适用于HTML元素)。我认为这是有效的,但在重新测试时,这两种方法都不适用于IE9上的点击。也许我的IE9处于兼容模式。
它根本不理想,但你可以通过<meta>
标签开关强制IE9进入IE8模式:
<!--[if ie 9]><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"><![endif]-->
对错误信息道歉,我会继续研究。
2012年9月24日更新:
非常有用的caniuse.com包含有关HTML的pointer-events
的更多信息。 IE10中的支持仍然未知,Opera似乎也不支持此属性。我建议现在不要使用pointer-events
,除非你专门针对Webkit / Mozilla。
答案 1 :(得分:1)
指针事件仅适用于webkit,hz中的mozilla浏览器。
但是,指针事件适用于Internet Explorer中的svg元素。
有一个很好的modernizr插件https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.min.js来测试指针事件的存在
如果你使用指针事件只是在顶部添加某种纹理,你可以用svg元素替换div
if( !Modernizr.pointerevents )
{
$('#texture').replaceWith('<svg id="texture"/>');
}