1

我正在尝试将 jQuery UI 工具提示加载到 MVC4 视图中的网页中,但出现错误:

未捕获的类型错误:对象 [对象对象] 没有方法“工具提示”

我正在使用 jQuery 1.9.1 和 jQuery-UI 1.10.2,据我所知应该允许我使用工具提示?查看 Chrome 中的 Sources 选项卡,我可以看到 jQuery 和 jQuery-UI JavaScript 文件以及 jQuery-UI css 文件。

这是我正在使用的标记:

<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.10.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/TableCreationScript.js"></script>

<script>
    $(function () {
        $(document).tooltip();
    });
</script>

我错过了什么吗?

4

3 回答 3

1

我最好的猜测是:

我很确定../../Scripts如果 url 与www.domain.com/app_path/controller/action

../ 与 url rewrite 一起加入不是你的朋友。../ 正在处理相对于当前 url的路径。

想象一下:

  • 如果您当前的 url 是http://www.example.com/app_path/home/index/,那么../../Scripts/jquery-ui-1.10.2.min.js将转换为:http://www.example.com/app_path/Scripts/jquery-ui-1.10.2.min.js这很好。但是,如果您的 url 是:http://www.example.com/app_path/home/那么脚本http://www.example.com/Scripts/jquery-ui-1.10.2.min.js甚至会在您的应用程序之外。

ASP.NET 有一种处理应用程序相关url-s 的方法:

<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.10.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/TableCreationScript.js")"></script>

<script>
    $(function () {
        $(document).tooltip();
    });
</script>

编辑

现在阅读评论后,我很确定脚本文件的 url 在某种程度上是错误的。您需要检查是否正确引用并找到了 javascript 文件:

请执行下列操作:

  • 在合适的浏览器中打开文档的 html 源代码。
  • 检查脚本 URL 指向的位置。(例如在 Firefox 中,您可以单击源中的 url,然后您可以查看指向站点的源。
  • 在您的情况下,单击脚本的 url 需要将您带到脚本文件的来源!
  • 如果它显示了 html 文件的来源,那么您很可能正在查看404 Not Found

或者你可以:

  • 检查chrome 开发人员工具中的网络选项卡。您应该能够查看所有内容是否正确加载。
于 2013-04-14T08:56:00.270 回答
0

感谢您的帮助,OhgodWhy 的控制台评论让我得到了这个答案:MVC4 jQuery UI does not work

现在它可以工作了。

于 2013-04-14T09:24:23.240 回答
0

好的,我找到了解决方案,但不明白为什么......

        <asp:ScriptManager runat="server">
        <Scripts>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="bootstrap" />

            <%--Site Scripts--%>
        </Scripts>
    </asp:ScriptManager> makes things work while...

以下解决/加载脚本但不起作用...

<link href="../Content/bootstrap-theme.min.css" rel="stylesheet" />
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
<script src="../Scripts/jquery-2.1.4.min.js"></script>
<script src="../Scripts/bootstrap.min.js"></script>
于 2015-12-17T00:42:31.493 回答