我有一个问题,我似乎无法自行决定,所以我会问这里。问题很简单:是使用内联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而不是返回。
希望这不太难理解。
答案 0 :(得分:3)
如果您使用document.createElement()创建元素(但没有将它们附加到DOM)并保留对它们的引用,那么您可以使用文本内容填充它们并附加事件处理程序,而不必使用内联事件。
当您准备好揭示您的“秘密”时,您可以将它们附加到DOM,而不是转储到HTML标记和内容的文本字符串中。
答案 1 :(得分:0)
我无法看到它有很大的不同 - 如果您只是使用“onclick”等来渲染您的事件.javascript事件处理程序只要您将生成的html附加到文档中,它们就会被评估,而不是您必须调用attachEvent()或其他什么,。