2010-12-12 15 views
11

状況:IE8とYoutube Chromeless APIを使用するためにVideoJS.comを変更しようとしています。IE8のPreventDefault代替手段

問題:プログレスバーのドラッグを(event.preventDefault上のエラーを();デバッグによると 'サポートされていません')は動作しません

デモhttp://alpha.dealertouch.mobi/video/demo.html

私はを試してみました何: Internet Explorerの場合は 'preventDefault'をスキップしますが、これを行うとプログレスバーの機能が失われます(前後にドラッグ/クリックする)

質問:IE8のこの問題を解決する最良の方法は何ですか?

答えて

5

IE8はpreventDefaultをサポートしていません。代わりにreturnValueがあります。しかし、jQueryはそれを正規化する必要があります。実際のイベントオブジェクトではなく、jQueryイベントラッパーでpreventDefaultを呼び出していますか?

-1

使用

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

jquery docs

+0

"PreventDefault alternative for IE8"と題されている質問に記載されているように、これはIE8では機能しません。 – Purrell

+0

@Purrellこれは私の答えから編集した古い質問でした。ご意見ありがとうございました。 –

1

ただ、それはクロスブラウザだと)(event.preventDefaultと同じ目的を持って

return false; 

使用します。

jQueryの同じ命令はわずかに異なりますが、stopPropagation()も含まれています。

+0

http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-falseアプローチ。 – Bungle

29

私のようなものを使用します。

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

event.returnValueプロパティがpreventDefaultに最も近いIEと同等であるが。

return false; 

を使用すると、時にはも働くことができるが、例えばと混合したときに、それは予期しない動作を引き起こす可能性がjQuery(jQueryもstopPropagation ... です。通常はですが、それは頼りにしない方がいいです)。