IE <9 показывает показ "Member not found"
Я вижу "SCRIPT3: Member not found". ошибка в IE < 9. Если посмотреть на различные местоположения (например, Member not found IE error (IE 6, 7, 8, 9)), это похоже на setTimeout
внутри .hover()
.
Я выполнил шаги, но все же имею ту же проблему. Я был бы благодарен за любую помощь.
Вероятно, это может произойти и в местах внутри change()
fn.
Я поместил весь код в: http://jsfiddle.net/f4tZQ/
Ответы
Ответ 1
После некоторого поиска я, похоже, подвержен ошибке jQuery. После "комментария: 4", изменив файл jQuery-1.6.2.js, строка 3172 решила проблему.
if (typeof e.cancelBubble !== 'unknown') { e.cancelBubble = true; }
Не спрашивайте, почему, но это сработало... По какой-то причине jQuery или IE возвращается "неизвестно" здесь вместо "undefined".
Получено от:
Источник: http://bugs.jquery.com/ticket/10004
Ответ 2
Для других, кто попадает сюда, которые не хотят изменять источник jQuery... (ЗА ЛЮБОВЬ БОГА НЕ ДЕЛАЙТЕ ЭТО)
Это происходит в ie < 9 при запуске пользовательских событий. Если у вас есть доступ к событию до того, как он дойдет до точки, где происходит сбой, просто пройдите вниз по цепочке originalEvent и установите последнее value = {};
Ниже приведен код, когда вы полагаетесь на jQuery для обработки обработчиков событий возвращаемого значения (false
) где-то вниз по цепочке. Если вы хотите отменить мероприятие здесь, см. Комментарии - заверните вызов e.stopPropagation()
в блок try/catch
var handleAndFire = function(e) {
var ev = new $.Event('stack.overflow');
//you may have to debug and manually inspect to see how
//deep the originalEvents go
//or you could write your own function to traverse
//depth first and find it automatically, I'm lazy.
e.originalEvent.originalEvent = {}; //fix for ie < 9
ev.originalEvent = e;
$(document).trigger(ev);
}
$(document).click(handleAndFire);