- Как правило, вы не начинаете запрашивать DOM до
$(document).ready()
. - В обоих вариантах ниже виджет объявляется (и элементы запрашиваются) за пределами
$(document).ready()
. - В порядке? Могу ли я инициализировать элементы jQuery (пока я ничего не манипулирую), OUTSIDE готового обработчика?
- Было бы лучше поставить все это определение виджета внутри
$(document).ready()
? - Должен ли я ждать, пока
Widget.init()
запросит элементы? - Примечание: Я новенькая JS шаблонов проектирования, поэтому, пожалуйста, обратите внимание, если я что-то отсутствует
ОПЦИЯ1jQuery + Module Pattern: Когда объявлять/запрашивать элементы?
Widget = {
ele : $('#ele'),
init : function(){ ... }
};
$(document).ready(function(){
Widget.init();
});
option2
Widget = (function(){
var privateEle = $('#privateEle');
return {
publicEle: $('#publicEle'),
init: function(){ ... }
};
}());
$(document).ready(function(){
Widget.init();
});
Ни вариант будет работать, если код не до тела тега закрытия из-за элемент еще не существует. Подождите, пока init не будет вызван для выбора элементов. –