Я знаю, что это довольно старый пост, но я потратил некоторое время, пытаясь заставить это работать в IE8.
Похоже, что есть некоторые различия в версиях IE8, потому что решения, размещенные здесь и в других темах, не работали для меня.
Допустим, у нас есть этот код:
$('a').on('click', function(event) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
});
В моем IE8 preventDefault()
метод существует из-за jQuery, но не работает (возможно, из-за пункта ниже), поэтому это не удастся.
Даже если я установлю returnValue
свойство непосредственно в false:
$('a').on('click', function(event) {
event.returnValue = false;
event.preventDefault();
});
Это также не сработает, потому что я просто установил некоторое свойство пользовательского объекта события jQuery.
Единственное решение, которое работает для меня, это установить свойство returnValue
из глобальная переменная event
следующим образом:
$('a').on('click', function(event) {
if (window.event) {
window.event.returnValue = false;
}
event.preventDefault();
});
Просто чтобы упростить задачу тому, кто попытается убедить IE8 работать. Я надеюсь, что IE8 скоро ужасно умрет мучительной смертью.
UPDATE:
Как указывает sv_in , вы можете использовать event.originalEvent
, чтобы получить исходный объект события и установить свойство returnValue
в исходном. Но я еще не тестировал его в своем IE8.