我使用对象文字来收集我动态添加的各种 DOM 元素,因为我希望能够通过变量引用它们(下面的代码已简化,还有更多,比如事件等):
ui = {
header : $('<div id="header"></div>').appendTo('body').css('color','#009'),
footer : $('<div id="footer"></div>').appendTo('body').css('color','#990')
}
现在我希望我可以向其中添加其他对象,但它会引发错误:
ui = {
header : $('<div id="header"></div>').appendTo('body').css('color','#009'),
footer : $('<div id="footer"></div>').appendTo('body').css('color','#990'),
headerSpecial : $('<span>some header</span>').appendTo(ui.header) // this line will cause an error "ui is not defined"
}
我想这是因为在 ui 对象关闭之前,我还不能引用里面的任何东西。所以我必须将这些东西分成单独的对象。但是有什么方法可以让我在一个对象中做到这一切吗?我应该在匿名函数中包装一些东西然后调用它们吗?