Весь этот вопрос - это своего рода «то, что я пробовал» в попытке инкапсулировать мои js, но он не работает, как я надеюсь.Попытка «инкапсулировать» многоразовый код javascript
На моей странице у меня есть div.
<div id='myDiv'></div>
У меня также есть некоторый скрипт:
<script type="text/javascript">
$(function() {
$('#myDiv').hide();
});
</script>
Этот сценарий будет расти в размерах и сложности, поэтому я хочу его страницу и во внешний JS файл. Это нормально, но я также хочу, чтобы он был повторно использован. Что будет делать javascript, так это превратить div (и его дочерние элементы) в элемент управления (например, ползунок).
Таким образом, после исследования способов, которыми я могу почти имитируют принципы ООП в JavaScript, я получаю следующее во внешнем файле:
var MyControl = function() {
this.init= function (myDiv) {
myDiv.hide();
};
};
Я тогда называть это так:
$(function() {
var myControl = new MyControl();
myControl.init($('#myDiv'));
});
Проблема в том, что div не скрыт, несмотря на вызов hide() на нем. Если я отлаживаю это, я вижу, что у меня есть div, он передается в порядке и отображает каждую строку кода, которую я ожидал бы (может даже отображать тип div в предупреждении).
Почему сайт не отображается на странице?
Этот подход рекомендуется для решения проблемы, которую я обсуждал в начале этого сообщения?
У вас есть параметр 'myDiv' и вызывается' div.hide() ' –
Хорошо замечен. Это опечатка (в этом вопросе, а не мой фактический код), я сейчас разоберчу это. Благодарю. –
Вам нужен «конструктор» в вашем коде, или это может быть простое «пространство имен»? –