IE8的PreventDefault替代方案

时间:2010-12-12 14:13:54

标签: jquery jquery-ui internet-explorer preventdefault

情况:尝试修改VideoJS.com以使用IE8和Youtube Chromeless API。

问题:进度条拖动不起作用(event.preventDefault()上的错误;根据调试“不支持”)

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

我尝试了什么:当它是IE时跳过'preventDefault',但如果我这样做,我将失去进度条的功能(向前和向后拖动/点击)

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

4 个答案:

答案 0 :(得分:29)

我用的是:

(event.preventDefault) ? event.preventDefault() : event.returnValue = false; 

event.returnValue属性是最接近等同于preventDefault的IE。

使用

return false;

有时也可以起作用,但有时与...混合会导致意外行为。 jQuery(jQuery也会stopPropagation ... 通常你想要什么,但是...),所以我不想依赖它。

答案 1 :(得分:5)

IE8不支持preventDefault;它改为returnValue。不过,jQuery应该为你规范化。您确定要在jQuery事件包装器(而不是实际的事件对象)上调用preventDefault吗?

答案 2 :(得分:1)

只需使用

return false;

它是跨浏览器,与event.preventDefault();

具有相同的目的

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

答案 3 :(得分:-1)

使用

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

jquery docs