Подтвердить что ты не робот

Альтернатива PreventDefault для IE8

Ситуация: попытка изменить VideoJS.com для работы с API-интерфейсом IE8 и Youtube Chromeless.

Проблема: перетаскивание прогона не работает (ошибка в событии .preventDefault(); "не поддерживается" в соответствии с отладкой)

Демо: http://alpha.dealertouch.mobi/video/demo.html

То, что я пробовал: пропустить 'preventDefault', когда он IE, но если я это сделаю, я потеряю функциональные возможности progressbar (перетащите/щелкните вперед и назад)

Вопрос. Каков наилучший способ решить эту проблему для IE8?

4b9b3361

Ответ 1

Я использую что-то вроде:

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

Свойство event.returnValue является ближайшим IE, эквивалентным preventDefault.

Использование

return false;

иногда также может работать, но это может привести к неожиданному поведению, иногда при смешивании с, например, jQuery (jQuery также делает stopPropagation... который обычно, что вы хотите, но...), поэтому я предпочитаю не полагаться на него.

Ответ 2

IE8 не поддерживает preventDefault; он имеет returnValue. Однако jQuery должен нормализовать это для вас. Вы уверены, что вызываете preventDefault в оболочке события jQuery (а не в объекте события)?

Ответ 3

Просто используйте

return false;

это перекрестный браузер и имеет ту же цель, что и event.preventDefault();

Та же самая инструкция в jQuery несколько отличается, она включает также stopPropagation().

Ответ 4

Использование

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

jquery docs