动态注册jquery不起作用

时间:2010-09-08 14:53:34

标签: .net jquery scriptmanager

我想在母版页上动态注册jquery脚本, 但它不起作用,任何人都可以帮助我吗?

我从我的Web应用程序的根目录中获取了一个文件夹Materials / Scripts, 我的母版页看起来像

public partial class Application : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "jquery",
            VirtualPathUtility.ToAbsolute("~/Materials/Scripts/jquery-1.4.2.min.js"));
    }     
}

但这永远不会奏效。使用

<script src="../../Materials/Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>

工作正常。

1 个答案:

答案 0 :(得分:1)

当您使用ScriptManager添加脚本引用时,它会将SCRIPT标记添加到BODY页面的HTML,而不是HEAD部分。如果在$(document).ready()上运行任何jquery代码,它将无效,因为尚未加载jQuery。

查看aspx页面生成的HTML,查看jQuery代码的位置以及引用<script>的{​​{1}}代码的位置。

解决此问题的一种方法是在文档底部添加您的javascript而不是jQuery

如果您仍希望将代码保留在HEAD中,另一个选项是使用window.onload而不是HEAD,例如:

$(document).ready()