5

我正在将项目中的 javascript 更改为 jquery。这是我第一次使用 Jquery,希望我会犯一些愚蠢的错误。我在 .js 文件中放置了一个简单的 JQ 警报函数,如下所示。

$(document).ready(function(){
  $("#stt").change(function(){
    alert("hi");
  });
});

因此,目标是在 id="stt" 的 td 元素的值发生更改时发出警报消息。

<tr id="stttr"> 
<td id="stt"> <html:text property="stt" size="20" maxlength="20"  style="height:12px; width: 180px;" /></td></tr>

这就是我在 jsp 的 head 标签之间引用 jquery 的方式。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>
<script src="javascript/SearchPanelJQ.js"></script>
<script src="javascript/CalendarPopup.js"></script>

Calendarpop.js 是一个较旧的 javascript 文件,我不想替换它(它在所有浏览器上都可以正常工作)。现在,当我在 IE 中启用脚本调试的浏览器中访问此页面时,我收到以下错误。

HTML1201: localhost is a website you've added to Compatibility View. 
ReportingTemplate.jsp
SEC7115: :visited and :link styles can only differ by color. Some styles were not     applied to :visited. 
ReportingTemplate.jsp
SCRIPT5007: The value of the property '$' is null or undefined, not a Function object 
SearchPanelJQ.js, line 1 character 1

最后一行告诉我设置有问题。你能告诉我什么吗?

我安装了 jsdt jquery 插件并且正在使用 JQ v1.9。该项目是一个struts项目。

编辑:1)当 JQ 函数包含在 jsp 中时它可以工作。当它在不同的 .js 文件中时,它不起作用。2) 即使我在参考中包含 http:,它也仅在 document.ready 函数在同一个 JSP 中时有效,而不是在不同的 .js 文件中时有效。这超出了目的,因为在我的项目的多个页面中将使用相同的验证。

4

3 回答 3

2

备查:

  • 在 Chrome 中运行(或其他用户指出的任何浏览器)

  • 右键单击 > 检查元素 > 控制台

  • 阅读错误日志(控制台可以提供 js、php 和其他错误,以帮助查明发生故障的特定行)

您的

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>

应该

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>

user2736012提供的原因是:

OP 正在使用“协议相关”url,它自动使用用于获取页面的协议。在这种情况下,如果协议为file://home/User/Desktop/foo.html,则协议相对 url 变为file://ajax.googlapis...,这当然行不通。但它会在使用 http 获取页面时起作用,因为它会是http://ajax.googleapis...

于 2013-09-24T17:58:43.863 回答
1

我发现了这个问题。我引用 JQ 版本 1.9 是因为我在教程中读到它应该自动选择 1.9 系列中的最新版本。如果我将其更改为 1.9.0 或 1.9.1,它将起作用。但是,我仍然不明白为什么 1.9 不起作用。它应该选择最新的 1.9.* 版本。

但至少通过将其设为 1.9.1/0,它可以从 .js 文件中运行。

于 2013-09-24T19:02:58.977 回答
0

图书馆的链接是正确的,在这里检查!看这条线

SCRIPT5007: The value of the property '$' is null or undefined, not a Function object 
SearchPanelJQ.js, line 1 character 1

此库有问题或发生冲突。

于 2013-09-24T18:16:24.240 回答