Я столкнулся с той же проблемой. jQuery mobile применяет классы во время выполнения, я пробовал вышеуказанные решения, но у меня это не сработало, затем я удалил форму класса ui-shadow <div data-role="navbar" class="ui-corner-all">
, которая выполнила мое требование.
в IE, вы можете использовать
event.returnValue = false;
для достижения того же результата.
А чтобы не получить ошибку, вы можете проверить наличие preventDefault:
if(event.preventDefault) event.preventDefault();
You их можно комбинировать с:
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
Mootools переопределяет preventDefault в объектах событий. Таким образом, ваш код должен нормально работать в любом браузере. Если этого не происходит, значит, проблема с поддержкой ie8 в mootools.
Вы тестировали свой код на ie6 и / или ie7?
В документе говорится
Каждое событие, добавленное с помощью addEvent, автоматически получает метод mootools. , без необходимости создавать его вручную.
но в случае, если это не так, вы можете попробовать
new Event(event).preventDefault();
Вот функция, которую я тестировал с помощью jquery 1.3.2 и ночной сборки от 18.09.2009. Дайте мне знать о ваших результатах. С этой целью все работает нормально в Safari, FF, Opera на OSX. Он предназначен исключительно для исправления проблемной ошибки IE8 и может иметь непредвиденные результаты:
function ie8SafePreventEvent(e) {
if (e.preventDefault) {
e.preventDefault()
} else {
e.stop()
};
e.returnValue = false;
e.stopPropagation();
}
Использование:
$('a').click(function (e) {
// Execute code here
ie8SafePreventEvent(e);
return false;
})