Reputation: 1027
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.preventDefault(); '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?
Upvotes: 11
Views: 19305
Reputation: 4295
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.
Upvotes: 29
Reputation: 18265
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().
Upvotes: 1
Reputation: 788
Use
$('.selector').click(function(event) {event.preventDefault();
Upvotes: -1
Reputation: 28160
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)?
Upvotes: 5