#javascript #jquery #dom
#javascript #jquery #dom
Вопрос:
У меня есть эта страница, на которой я провожу некоторые тесты на Javascript и jQuery: тесты JS
У меня есть несколько вопросов о том, как создавать, не уверен, что это правильный термин, но составные элементы управления с помощью Javascript. В чем-то вроде Flash вы должны создать класс Object, иметь геттеры и сеттеры, рисовать свои изображения и т. Д. В JS это, похоже, совсем другой мыслительный процесс. Мой главный вопрос заключается в том, как вы создаете несколько элементов с геттерами и сеттерами для визуализации, фильтрации и взаимодействия с ними в Javascript?
Основной код, касающийся этого примера, находится с:
var html = (function(){
// var FRAG = $(document.createDocumentFragment());
htmlBox = $(document.createElement("div"));
var eTitle = $(document.createElement("h4"));
var ePrice = $(document.createElement("p"));
// set class first
htmlBox.addClass("box")
htmlBox.css({
backgroundColor : color
})
// set text values
eTitle.text(title);
ePrice.text("$" price);
htmlBox.append(eTitle)
htmlBox.append(ePrice)
return htmlBox;
})();
… внутри класса Box(). Если бы кто-нибудь мог взглянуть на исходный код и сообщить мне, что не совсем правильно, это было бы здорово.
Редактировать
Вот конечный результат для этого примера. Нужно проработать некоторую логистику, но то, что мне нужно.
http://geerswitch.in/tests/obj/
Что касается узлов, создающих jQuery, встроенная версия JS отлично подходит для этого, и некоторые исследования в Google показывают, что способ, не связанный с jquery, в любом случае быстрее в большинстве случаев (и выглядит хуже, imo)
Комментарии:
1. Для этого вы можете предпочесть шаблонизаторы на стороне клиента (jQuery великолепен), поскольку это кажется гораздо более подходящим. Ваш фрагмент документа — хорошая идея, хотя jQuery IIRC в любом случае делает это за вас в составных операторах, поэтому нет необходимости выполнять всю тяжелую работу — большого выигрыша не будет, а ваш код намного длиннее.
Ответ №1:
Вы делаете это почти правильно. Вы создали Box
класс для представления вашего элемента пользовательского интерфейса более высокого порядка, вы создаете его экземпляр для каждого элемента, а ваша основная программа управляет элементами через свой интерфейс. Единственное, чего вам не хватает, это разделение между общедоступным интерфейсом и частной реализацией. Ничто не мешает мне делать myBox.price = 10
это прямо сейчас, хотя Box
интерфейс четко подразумевает, что price
это должно быть установлено при построении и никогда не изменяться.
JavaScript не имеет модификаторов видимости, таких как «private» и «public», но вы можете создать тот же эффект самостоятельно. Подробности см. в объяснении Дугласа Крокфорда. Крокфорд — самоуверенный гений, когда дело доходит до JavaScript, и он является мозгом JSLint и JSON.
Комментарии:
1. Спасибо, ребята. Это просто вопрос перехода в режим JS 🙂