JavaScript在本地工作,但在部署到web服务器时不起作用

JavaScript works locally but not when deployed to webserver

本文关键字:web 服务器 不起作用 部署 工作 JavaScript      更新时间:2023-09-26

我正在部署一些代码到一个网站,当我做JavaScript不运行。我得到错误:

SCRIPT5007:属性'$'的值为空或未定义,不是一个函数对象。

它使用的代码是

@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>

根据您在Ashley Ross的回答中的评论,看起来您试图使用相对路径添加jQuery。它看起来也像你在使用MVC。在MVC中,你想在html中引用文件的方式是:

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

同样,你的script标签是否在head标签中也不重要。唯一的区别是装载。通过将其放在head标签中,您告诉浏览器在开始加载主体之前下载js文件,这可能很好,但也可能增加页面加载时间。为了更快地下载页面,您实际上需要将脚本标记放在body标记的底部,这将延迟下载js文件,直到页面的其余部分加载完毕。这将导致更快的页面加载时间,但如果您没有预料到它,可能会导致一些奇怪的行为。

您需要在任何其他脚本之前包含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源代码中,比其他使用它的脚本更早。

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>