Встроенные события Javascript или последующие добавления событий - PullRequest
0 голосов
/ 17 ноября 2009

У меня есть вопрос, который я не могу решить самостоятельно, поэтому я задам его здесь. Вопрос прост: использовать ли встроенные события Javascript или добавлять их потом. Теория в фоновом режиме не так просто, хотя:

У меня есть объект JS, который возвращает HTML. Всякий раз, когда вы создаете этот объект, возвращенный HTML будет использоваться для HTML другого объекта. Поэтому добавлять события не так просто. См:

secret.object = function()
{
 this.init = function()
 {
  var html = '<div>and lots of other HTML content</div>';
  return html;
 };
}

Это образец объекта, который создается в этом коде:

    for ( var i = 0; i < countObjects; i++)
     {
  var obj = arguments[0].content[i];


   generatedContent += spawnSecret(); /* The spawnSecret() is a method that initializes the object, and calls its init() method that returns the HTML.

 }

, а затем я создаю новый объект, свойство которого "content" будет установлено в "generateContent". Нужно добавить события в секретный объект, который у меня есть, больше нигде. И поскольку моя система построена таким образом, я вижу только два пути: использовать встроенные события или построить HTML, используя вызов метода вместо возврата.

Надеюсь, это было не так сложно понять ..

Ответы [ 2 ]

3 голосов
/ 17 ноября 2009

Если вы создали элементы с помощью document.createElement () (но не не добавил их в DOM) и сохранили ссылку на них, вы можете заполнить их текстовым содержимым и прикрепить событие обработчики к ним, без использования встроенных событий.

Когда вы будете готовы раскрыть свой «секрет», вы можете добавить их в DOM, а не помещать в текстовую строку HTML-теги и контент.

0 голосов
/ 17 ноября 2009

Я не вижу, чтобы это имело большое значение - если вы просто визуализируете свои события, используя "onclick" и т. Д. Обработчики событий javascript будут оцениваться, как только вы добавите сгенерированный html в документ, а не вызов attachEvent () или что-то еще.

...