应该将带有jquery代码的脚本块放在哪里放在ASP.NET MVC母版页上?

6 asp.net-mvc jquery

开始使用jquery并且无法获得asp.net mvc的hello world类型示例.尝试使用此脚本加载页面时,我收到运行时错误"对象预期".

A.脚本标记应放在母版页中的哪个位置?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>
Run Code Online (Sandbox Code Playgroud)

Dan*_*rza 11

嗯......

回答你的第一个问题:它们应该放在<head>元素中.

此外,通常我在DOM中下沉事件时使用'bind'方法(就像你想要做的那样).

所以,代码看起来像:

$(document).ready(function()
{
    //  Bind each link to a handler:
    $("a").bind('click dblclick', function(event)
    {
         alert('click');
    })
});
Run Code Online (Sandbox Code Playgroud)

还有一些设计技巧(因为你正在处理我心中的事情(使用jQuery的ASP.NET MVC):

在母版页<head>元素的底部添加额外的"ContentPlaceHolder" .这将允许您在其正确的位置运行页面特定的javascript:在页面的"head"部分,它将允许您制作特定于页面的javascript包含.

它看起来像这样:

    <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
Run Code Online (Sandbox Code Playgroud)

为什么这有用? 我会告诉你:你正在使用的jQuery圆角插件可能只用在几个页面上 - 为什么要在每个页面上包含它?


小智 1

B) 我在快速测试页面上检查了您的内联脚本,它工作正常,所以我建议使用安装了FireBug插件的Firefox来查找问题:

  • 在 Firebug 的“脚本”选项卡中,使用右侧的“监视”窗口插入和检查脚本的各个部分并查看它们返回的内容。
  • 我首先放入$监视窗口并检查它是否被识别为function():也许 jQuery 没有正确链接
  • 然后放入 $("a")监视窗口并检查它返回的集合是否具有与集合中的“a”选择器相对应的正确数量的项目
  • 继续运行部分脚本,直到遇到错误