Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2013, 12:06
Интересующийся
Отправить личное сообщение для nextdrift Посмотреть профиль Найти все сообщения от nextdrift
 
Регистрация: 23.10.2011
Сообщений: 25

jQuery. Генерация объектов. Нужен совет
Добрый день. Начал писать скрипт интерактивной навигации по карте в виде игры. Но в один момент решил, что я делаю что-то не так...

Вот думаю, может его лучше использовать как плагин для jQuery? Или для данной задачи в этом нет необходимости.

Суть в том, что у меня есть база в формате json

Она содержит объекты комнат,
Каждая комната содержит объекты со своими координатами, на которые вешаются события.

Я сделал просто скриптом с использованием jQuery. Но внутренне что-то подсказывает, что лучше его плагином сделать... Т.к. он даже в 150 строк становится не совсем очевидным в некоторых местах...

В общем вопрос.
Как "правильно" генерировать дочерние объекты к сгенерированному объекту и подвешивать на них события?

Т.е. допустим я генерирую
var $room = $('<div></div>');


а дочерние так?
objects.each(function(){
  var $obj = $('<div></div>');

  $obj.addClass('obj');
  $obj.on('çlick', function() {
    goToRoom(параметры для перехода в другую комнату);
  });

  $room.append($obj);
});

Или как лучше?
в итоге что-то типа (в упращённой версии)

(function($) {
  $.fn.myMap = function(options) {
    function goToRoom() { смена комнаты };
    function createRoom(id) {
      var room = db.room[id];
      var $room = $('<div></div>');

      room.objects.each(function(){
        var $obj = $('<div></div>');

        $obj.addClass('obj');
        $obj.on('çlick', function() {
          goToRoom(параметры для перехода в другую комнату);
        });

        $room.append($obj);      
      };
    return this.each(createRoom(options.startRoom));
  };
})(jQuery);


будет ли такой вариант "правильным"?

Последний раз редактировалось nextdrift, 15.12.2013 в 14:04.
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2014, 09:33
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Цитата:
Вот думаю, может его лучше использовать как плагин для jQuery? Или для данной задачи в этом нет необходимости.
jQuery - это просто обертка для javascript, если вы можете и главное хотите написать все на чистом js - ваше личное дело.
Я вот для себя не вижу смысла писать на чистом js свои функции-обертки - быстрее использовать эту библиотеку с обилием уже написанных методов.

Создавать dom можно и так и так - $('<div>') или $('div',{id:'myid',class:'myclass'})

Второй вариант написания кода мне кажется более изящным, хотя в $.fn - смысла мне вижу, как и в предыдущем objects.each - первым вы создаете новый метод jQuery, который по логике должен применяться к какому то объекту, но код в нем написанный никаких действий с этим объектом не производит.
Так же и во втором - вы применяете метод each() к objects , при этом совершенно этот самый objects не затрагивается.

Может я ошибаюсь - если в goToRoom осуществляются какие то действия с objects?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение активного пункта меню. Нужен совет! kirian222 Элементы интерфейса 14 17.10.2013 02:50
Смена картинки при нажатии на радиокнопку (нужен совет) Roningrad Элементы интерфейса 2 04.04.2013 21:12
нужен совет по jquery в chrome paradox2 Элементы интерфейса 1 10.11.2012 05:25
плохо работает jQuery ui dialog нужен совет flytracer jQuery 5 10.10.2011 19:25
Нужен совет по jQuery. bublik Общие вопросы Javascript 2 03.08.2010 14:31