0

我正在向网站部署一些代码,但当我这样做时,JavaScript 没有运行。我得到错误:

SCRIPT5007:属性“$”的值为 null 或未定义,而不是 Function 对象。

它使用的代码是

@model MVCMasterDetail.DataAccess.cwwoLoadCurrentWorkOrderActualsResult[]

<script type="text/javascript">
  $(document).ready(function () {
    $(".grid-toggle").click(function () {
        $(this).closest("table").find("tbody").show();
    });
    $(".hide-rows").click(function () {
        $(this).closest("table").find("tbody").hide();
    });
});
</script>

@Html.Partial("MasterDetailMasterPartial")

调用它的是:

<td colspan="4"> Details<br/><a href="javascript: void(0)" class="grid-toggle">Show-     </a><a href="javascript: void(0)" class="hide-rows">Hide</a></td>

任何帮助表示赞赏。

4

3 回答 3

2

根据您在 Ashley Ross 的回答中的评论,您似乎正在尝试使用相对路径添加 jQuery。看起来您也正在使用 MVC。在 MVC 中,您希望在 html 中引用文件的方式是:

<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script>

此外,您的脚本标签是否进入头标签也没有关系。它唯一的区别是加载。通过将它放在 head 标签中,您是在告诉浏览器在开始加载正文之前下载 js 文件,这可能很好,但也会增加页面加载时间。为了更快的页面下载,您实际上希望将脚本标签放在正文标签的底部,这会将 js 文件的下载推迟到页面的其余部分加载之后。这会导致更快的页面加载时间,但如果您没有预料到它可能会导致一些时髦的行为。

于 2013-01-02T17:03:52.137 回答
1

您需要在任何其他脚本之前包含 jQuery。听起来你有类似的东西

<script type="text/javascript" src="customScriptThatUsesjQuery.js"></script>
<script type="text/javascript" src="jquery-x.y.z.min.js"></script>

代替

<script type="text/javascript" src="jquery-x.y.z.min.js"></script>
<script type="text/javascript" src="customScriptThatUsesjQuery.js"></script>

在使用它的任何其他脚本之前检查它是否出现在您的 HTML 源代码中。

于 2013-01-02T16:48:01.483 回答
0

您必须在中添加对 jquery lib 的引用<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
于 2013-01-02T16:47:31.780 回答