(文件).ready中的功能

时间:2013-12-25 23:17:42

标签: javascript jquery asp.net vb.net

我正在使用一个使用母版页的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

1 个答案:

答案 0 :(得分:5)

这是因为您可能正在尝试从全局范围调用函数sayHello,该范围在document.ready回调的闭包中定义。所以它只能在那里访问。当您移出它时,您将在全局范围内定义它,并且当您尝试在全局范围或任何其他内部范围中访问它时,它是可访问的。

  

当我在.aspx页面中调用此函数时,没有任何反应。

您必须收到错误。

您可以在document.ready之外安全地定义您的功能。您只需要放置(大多数情况下)在就绪处理程序中访问dom的代码段(除非该脚本位于html中的元素之后)。