MeProtozoan
MeProtozoan

Reputation: 1027

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.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

Answers (4)

Kevin Horn
Kevin Horn

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

sebarmeli
sebarmeli

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

Traveling_Monk
Traveling_Monk

Reputation: 788

Use

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

jquery docs

Upvotes: -1

Tgr
Tgr

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

Related Questions