Javascript内联事件或之后添加事件

时间:2009-11-17 13:21:37

标签: javascript events inline

我有一个问题,我似乎无法自行决定,所以我会问这里。问题很简单:是使用内联Javascript事件还是之后添加它们。背景理论并非如此简单:

我有一个返回HTML的JS对象。无论何时创建此对象,返回的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”将设置为“generatedContent”。它需要在我拥有的秘密对象中添加事件,而不是其他任何地方。由于我的系统是这样构建的,我只看到两种方法:使用内联事件或使用方法调用构建HTML而不是返回。

希望这不太难理解。

2 个答案:

答案 0 :(得分:3)

如果您使用document.createElement()创建元素(但没有将它们附加到DOM)并保留对它们的引用,那么您可以使用文本内容填充它们并附加事件处理程序,而不必使用内联事件。

当您准备好揭示您的“秘密”时,您可以将它们附加到DOM,而不是转储到HTML标记和内容的文本字符串中。

答案 1 :(得分:0)

我无法看到它有很大的不同 - 如果您只是使用“onclick”等来渲染您的事件.javascript事件处理程序只要您将生成的html附加到文档中,它们就会被评估,而不是您必须调用attachEvent()或其他什么,。