开始使用jquery并且无法获得asp.net mvc的hello world类型示例。尝试使用此脚本加载页面时,我收到运行时错误“对象预期”。
一个。脚本标记应放在母版页中的哪个位置? B.我可能做错了什么?我的页面中肯定有“a”元素?
<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>
答案 0 :(得分:11)
嗯...
回答您的第一个问题:应将它们放在<head>
元素中。
此外,通常我在DOM中下沉事件时使用'bind' method(就像你想要做的那样)。
因此,代码看起来像:
$(document).ready(function()
{
// Bind each link to a handler:
$("a").bind('click dblclick', function(event)
{
alert('click');
})
});
另外,一些设计技巧(因为你正在处理我心中的事情(使用jQuery的ASP.NET MVC):
在母版页{h} <head>
元素的底部添加额外的'ContentPlaceHolder'。这将允许您在其正确的位置运行页面特定的javascript:在页面的“head”部分,它将允许您制作特定于页面的javascript包含。
它看起来像这样:
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
为什么这有用?我会告诉你:你正在使用的jQuery圆角插件可能只用在几个页面上 - 为什么要在每个页面上包含它?
答案 1 :(得分:2)
我同意Dan添加内容占位符以便在脚本中进行链接。但是,头部通常不是将JavaScript放在性能方面的最佳位置。最好的地方是在页面的底部。因此,您的HTML可以在JavaScript之前加载。见Yahoo's YSlow tip。你的代码仍应在head部分工作。
我喜欢将我网站的大部分JavaScript放在一个文件中,并将其链接到所有页面。如果它变得非常大,你可以将它分成几个文件。这利用了浏览器的缓存。
关于jQuery代码有什么问题。我不确定。看起来很正确。我唯一想知道的是事件参数。试着完全解决这个问题。我知道函数允许参数,但我通常使用“this”代替。另外,请尝试重命名参数。
答案 2 :(得分:1)
B)我在快速测试页面检查了您的内联脚本,它运行正常,所以我建议使用 Firefox 并安装 FireBug 插件来查找问题:
$
置于监视窗口并检查它是否被识别为function()
:或许jQuery没有属性链接$("a")
放入监视窗口并检查它返回的集合是否具有正确的数字
对应于集合中“a”选择器的项目答案 3 :(得分:1)
母版页通常存储在/Views/Shared/Site.Master中,而脚本位于/ Scripts中,所以这些:
<script src="../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.corner.js" type="text/javascript"></script>
应该是
<script src="../../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.corner.js" type="text/javascript"></script>
但我建议使用帮手:
public static class Helper
{
private static string ScriptsRoot = "~/scripts/";
public static string ScriptUrl (string scriptFile)
{
return VirtualPathUtility.ToAbsolute (ScriptsRoot + scriptFile);
}
}
然后像这样引用你的脚本:
<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>