Использование цифр и подчеркивания в буквенных ключах объекта приводит к ошибке в Internet Explorer <9 - PullRequest
2 голосов
/ 20 июля 2011

У меня есть объект, где я кеширую некоторый HTML.Это выглядит примерно так:

MyNamespace.container.cache = {};
// add members
MyNamespace.container.cache['CAT_01'] = $('<SOME_HTML>');
MyNamespace.container.cache['CAT_02'] = $('<SOME_HTML>');
// ... produces
MyNamespace.container.cache = {
    'CAT_01': $('<SOME_HTML>'),
    'CAT_01': $('<SOME_HTML>')
};

Это, конечно, работает во всех браузерах, кроме IE <9. </p>

При назначении новых членов для моего объекта кэша я получаю следующую ошибку:

"SCRIPT65535: неожиданный вызов доступа к методу или свойству. Jquery-1.6.2.min.js, строка 17, символ 29113"

Удивительно, это работает, если я удаляю пространство имени контейнер и присваивает его глобальной переменной как этот.

var cache = {};
cache['CAT_01'] = $('<SOME_HTML>');

Это также работает, если я удаляю подчеркивание из ключа.

MyNamespace.container.cache['CAT02'] = $('<SOME_HTML>');

К сожалению, это не вариант в моемcase.

Есть идеи?Заранее спасибо за помощь.

/ E

1 Ответ

0 голосов
/ 18 января 2012

Похоже на столкновение пространства имен со свойством MyNamespace.container.cache и свойством jQuery.cache, которое происходит, когда расширение jQuery добавлено к элементу для IE.Попробуйте переименовать MyNamespace.container.cache в MyNamespace.container.memo или сообщить об ошибке, похожей на эту:

...