阻止默认事件在IE8中的替代方法

11

情况: 试图修改VideoJS.com以便与IE8和Youtube Chromeless API一起使用。

问题: 进度条拖动不起作用(调试时显示'not supported'错误)

演示: http://alpha.dealertouch.mobi/video/demo.html

我的尝试: 如果在IE上跳过 "preventDefault",则会失去进度条的功能(前后拖动/点击)

问题: 解决IE8的最佳方法是什么?

4个回答

29

我使用类似以下的代码:

(event.preventDefault) ? event.preventDefault() : event.returnValue = false; 
event.returnValue
是最接近IE中preventDefault的属性。
return false;

有时候可以工作,但是当与 jQuery 混用时可能会导致意外的行为(jQuery 也会执行 stopPropagation...通常你想要这样做,但是...),因此我更喜欢不依赖它。


5

IE8不支持preventDefault,它使用returnValue代替。但是,jQuery应该能够为您规范化这个问题。您确定在jQuery事件包装器上调用了preventDefault(而不是实际的事件对象)吗?


1

只需使用

return false;

它是跨浏览器的,其目的与event.preventDefault()相同。

在jQuery中,相同的指令略有不同,它还包括stopPropagation()。


请参考https://dev59.com/RXM_5IYBdhLWcg3wfTO7,了解此方法的注意事项。 - Bungle

-1

使用

$('.selector').click(function(event) {event.preventDefault();

jQuery文档


正如问题所述,甚至标题为“PreventDefault alternative for IE8”,这在IE8中不起作用。 - Purrell
@Purrell 这是一个旧问题,自从我的回答后已经被编辑过了,感谢您的意见... - Traveling_Monk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接