【发布时间】:2016-05-29 14:01:01
【问题描述】:
我有一个单页应用程序,用 javascript 和 jQuery 编码。页面内容正在根据用户的交互进行重新打印。问题是,我将页面元素声明为全局变量,但它们不起作用(它们的值未定义),因为 html 被清空并再次填充。
如果不是全局的,我应该在哪里声明页面元素?
这是我的代码的当前模式:
$(document).ready(function () {
//GLOBAL VARIABLES
var $homeLink = $(".home");
var $userLink = $(".user");
var $content = $(".content");
var $text = $(".content .text"); //this is undefined as the html doesn't exist yet
//FUNCTIONS
function printHtml() {
$content.empty();
$('<div />', { class: "text", text: "Lorem" }).appendTo($content);
}
//EVENTS
$homeLink.on("click", function(){
printHtml();
});
$text.on("click", function() { //can't get here because variable $text is undefined
//do something
});
});
【问题讨论】:
-
我猜你可以把你的JS的
-
@joel JS 文件位于 html 页面的末尾。页面 html 正在通过来自 Ajax 调用的数据重新打印。
标签: javascript jquery global-variables closures single-page-application