Показать сообщение отдельно
  #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.
Ответить с цитированием