0

我有一个问题,我似乎无法自己决定,所以我会在这里问。问题很简单:是使用内联 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.

}

然后稍后我创建一个新对象,其属性“内容”将设置为“生成内容”。它需要在我拥有的秘密对象中添加事件,别处。由于我的系统是这样构建的,我只看到了两种解决方法:使用内联事件或使用方法调用而不是返回来构建 HTML。

希望这不是太难理解。

4

2 回答 2

3

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

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

于 2009-11-17T14:05:47.093 回答
0

我看不出它有什么不同——如果你只是使用onclick等 JavaScript 事件处理程序呈现你的事件,一旦你将生成的 HTML 附加到文档中,它们就会被评估,而不是你必须调用attachEvent()或其他什么。

于 2009-11-17T13:30:58.710 回答