Я пишу расширение jQuery, содержащееся в самоисполняющейся функции:
(function($) {
// global variables for the purposes of this test
__$ = $;
__$support = $.support;
$.support.abc = "123";
// Setup for my extension goes here.
})(jQuery);
На моей тестовой странице у меня есть
<script type="text/javascript" src="jquery-1.5.2.js"></script>
<script type="text/javascript" src="myplugin.js"></script>
<script type="text/javascript">
$(function() {
console.log(__$ === $); // false
console.log(__$support === $.support); // false
console.log($.support.abc); // undefined
});
</script>
Почему это происходит? У меня нет других скриптов или плагинов jQuery, которые могли бы перезаписать объект jQuery
.
Я не смог найти, какой код в исходном коде jQuery перезаписывает объект jQuery
после того, как документ готов. Есть идеи?
Если нет способа избежать этого, какова будет правильная процедура определения новых свойств объекта jQuery.support
, к которым можно получить доступ после того, как документ будет готов?
РЕДАКТИРОВАТЬ: Я опустил критическую часть моего тестового кода, который непреднамеренно переоценил источник jQuery - и объясняет, почему эта проблема происходила. Смотрите мой ответ ниже.