PreventDefault alternative for IE8
Situation: Trying to modify VideoJS.com in order to work with IE8 and Youtube Chromeless API.
Problem: Progressbar dragging doesn't work (error on event.p开发者_Python百科reventDefault(); 'not supported' according to debug)
Demo: http://alpha.dealertouch.mobi/video/demo.html
What I tried: Skip 'preventDefault' when it's IE, but if I do that I'll lose the functionality of the progressbar (drag/click forward and backward)
Question: What is the best way to solve this problem for IE8?
I use something like:
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
the event.returnValue
property is the closest IE equivalent to preventDefault
.
Using
return false;
can sometimes also work, but it can lead to unexpected behavior sometimes when mixed with e.g. jQuery (jQuery also does stopPropagation
...which is usually what you want, but...), so I prefer not to rely on it.
IE8 does not support preventDefault
; it has returnValue
instead. jQuery should normalize that for you, though. Are you sure you are calling preventDefault
on the jQuery event wrapper (and not the actual event object)?
Just use
return false;
it's cross browser and has the same purpose as event.preventDefault();
THe same instruction in jQuery is slightly different, it includes also stopPropagation().
Use
$('.selector').click(function(event) {event.preventDefault();
jquery docs
精彩评论