В попытке улучшить способ кодирования я читал о модуле Singleton.Что я думаю, я полностью понял, однако я видел пример, который импортирует jquery как глобальный, однако я не смог сослаться на элемент DOM, как показано ниже:
var bnTalent = (function ($) {
var bnt = {},
privateVariable = 1;
domRef = $("#pie").val();
function privateMethod() {
// ...
}
bnt.moduleProperty = 1;
bnt.init = function () {
alert("bingo" + domRef);
//domRef.hide();
};
return bnt;
}(jQuery));
HTML:
<!DOCTYPE html>
<html>
<head>
<title>bnTalent</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="js/bnTalent.js"></script>
<link rel="stylesheet" href="css/main.css" type="text/css" media="screen" />
</head>
<body>
<input type="text" id="pie" value="mypies" />
</body>
</html>
Пожалуйста, помните, что этот код - только я, играющий вокруг, чтобы получить понимание, но удивляюсь, почему я не могу получить значение элемента DOM из замыкания.Я пропустил суть или допустил ошибку в школьной точке?Обратите внимание, что элемент существует в DOM, и jQuery загружается перед этим модулем.Также это не попытка создания плагина jQuery.
Любая помощь будет принята с благодарностью.
Обратите внимание, что я просто использую firebug для освобождения метода init после загрузки dom.
** ПОЛУЧИЛ ЭТО РАБОТАЕТ - Привет! Я добавил var перед глобальным var domRef, и это, похоже, решило проблему - кто-нибудь может объяснить почему?Также казалось, что я могу использовать domRef без объявления var, однако переменная выше должна быть «1», мы живем и учимся lol