带有jquery代码的脚本块应该放在ASP.NET MVC母版页的何处?
刚开始使用jquery时,很难将hello world类型的示例用于asp.net mvc。我在尝试加载带有此脚本的页面时遇到运行时错误“object expected” A.母版页中的脚本标记应放置在何处? 我可能做错了什么?我的页面中肯定有“a”元素带有jquery代码的脚本块应该放在ASP.NET MVC母版页的何处?,jquery,asp.net-mvc,Jquery,Asp.net Mvc,刚开始使用jquery时,很难将hello world类型的示例用于asp.net mvc。我在尝试加载带有此脚本的页面时遇到运行时错误“object expected” A.母版页中的脚本标记应放置在何处? 我可能做错了什么?我的页面中肯定有“a”元素 <script src="../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script> <script src="../
<script src="../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.corner.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function(event) {
alert("Thanks for visiting!");
});
});
</script>
$(文档).ready(函数(){
$(“a”)。单击(函数(事件){
警惕(“谢谢光临!”);
});
});
Hmmm
回答第一个问题:它们应该放在
元素中
另外,我通常在DOM中使用when sinking事件(看起来像您正在尝试这样做)
因此,代码看起来像:
$(document).ready(function()
{
// Bind each link to a handler:
$("a").bind('click dblclick', function(event)
{
alert('click');
})
});
另外,还有一些设计技巧(因为您使用的是与我的心意相近的东西(ASP.NET MVC with jQuery):
在母版页的
元素底部添加一个额外的“ContentPlaceHolder”。这将允许您在页面的“head”部分的适当位置运行特定于页面的javascript,并允许您创建特定于页面的javascript
它看起来像这样:
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>
<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery.corner.js") %>"></script>
这为什么有用?我会告诉你:你正在使用的jQuery圆角插件可能只在几页上使用——为什么要在每一页上都包含它?我同意Dan在脚本中添加内容占位符进行链接。但是,就性能而言,头部通常不是放置JavaScript的最佳位置。T最好的位置是在页面的底部。这样你的HTML可以在JavaScript之前加载。请参阅。你的代码应该仍然可以在标题部分工作 我喜欢将我网站的大部分JavaScript放在一个文件中,并将其链接到所有页面。如果它变得很大,你可以将其分成几个文件。这可以利用浏览器的缓存 至于jQuery代码有什么问题。我不确定。它看起来很正确。我唯一想知道的是事件参数。试着把它全部去掉。我知道函数允许有一个参数,但我通常使用“this”。另外,试着重命名参数。B)我在快速测试页面上检查了您的内联脚本,它工作正常,因此我建议使用安装了Firefox和FireBug插件的FireBug来查找问题:
- 在Firebug的“脚本”选项卡中,使用右侧的“监视”窗口插入并检查脚本的各个部分,看看它们返回了什么
- 我首先将
放在监视窗口中,检查它是否被识别为$
:也许jQuery没有正确链接函数()
- 然后将
放入“监视”窗口,检查它返回的集合是否有正确的编号 集合中与“a”选择器相对应的项目的集合$(“a”)
- 继续运行部分脚本,直到遇到错误
<script src="../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.corner.js" type="text/javascript"></script>
然后像这样引用脚本:
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery-1.2.6.min.js") %>"></script>
<script type="text/javascript" src="<%= Helper.ScriptUrl("jquery.corner.js") %>"></script>
YSlow提示的通话效果不错。我没有意识到脚本会阻止并行下载。