我正在使用一个使用母版页的VB.NET站点。我在母版页中调用了我的custom.js文件。我插入了一些简单的代码来测试custom.js:
$(document).ready(function(){
function sayHello(){
alert("Hello!");
}
});
编辑:以下是我在HTML中进行调用的方式:
<a href="javascript:sayHello();">Something</a>
当我在.aspx页面中调用此函数时,没有任何反应。但是,将代码保留在.aspx中并将函数移到document.ready外部使代码能够运行。想法为什么会这样?
编辑:我添加了a related question here
答案 0 :(得分:5)
这是因为您可能正在尝试从全局范围调用函数sayHello
,该范围在document.ready回调的闭包中定义。所以它只能在那里访问。当您移出它时,您将在全局范围内定义它,并且当您尝试在全局范围或任何其他内部范围中访问它时,它是可访问的。
当我在.aspx页面中调用此函数时,没有任何反应。
您必须收到错误。
您可以在document.ready之外安全地定义您的功能。您只需要放置(大多数情况下)在就绪处理程序中访问dom的代码段(除非该脚本位于html中的元素之后)。