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);