0

我有和手风琴在一个普通的 html 页面上工作,但是当我尝试将它添加到 Spring MVC 页面时,我得到了错误:$(...).accordion is not a function.

这是我的WEB-INF\views\index.jsp文件的标题:

<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
         <head>
  <title>Jeeni Software Ltd</title>
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" href="<c:url value="css/style.css"/>" type="text/css"> 
  <link rel="stylesheet" href="<c:url value="css/menu/menu_style.css"/>" type="text/css"/>
  <script type="text/javascript" src="<c:url value="js/jquery-1.8.3.js"/>"></script>
  <script type="text/javascript" src="<c:url value="js/jquery-ui-1.9.2.js">"></script>       
  <script type="text/javascript" src="<c:url value="js/jquery.flip.js"/>"></script>

...
<!-- This is the 'accordion' div -->
<div id="accordion" style="height:800px;">
   <h3>Title...</h3>
   ...

这是准备好的功能:

$(document).ready(function() {

  var object = $("#accordion");
  alert("object: "  + object.accordion);

  $("#accordion").accordion({ collapsible: true, active: 'false', autoHeight: false });
  $("#banner").fadeIn(1000);

  alert("Done");
});

有了这个alert("object: " + object.accordion);节目object: undefined,它就在下一行爆炸了。

这是我的servlet-context.xml文件

<mvc:resources mapping="/cv/**" location="/cv/" />
<mvc:resources mapping="/wow/**" location="/wow/" />
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/imgs/**" location="/imgs/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/inc/**" location="/inc/" />
<mvc:resources mapping="/article-imgs/**" location="/article-imgs/" />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  <property name="prefix" value="/WEB-INF/views/"/>
  <property name="suffix" value=".jsp"/>
</bean>

Firebug 显示加载任何 jquery 文件都没有问题。我可以在 Spring mvc 之外重新创建正确的行为,所以问题一定与 Spring/Java 有关?!?但我不知道是什么。Firebug 报告的唯一错误是$(...).accordion is not a function,但一切都像 jquery ui 手风琴示例一样设置。

顺便说一句,我在过去的 3 个小时里搜索了互联网,发现了类似的问题,这些问题是由拼写错误修复的。这不是拼写错误。关于 jquery UI 和 Spring MVC,我找不到类似的东西。

4

2 回答 2

0
<script type="text/javascript" src="<c:url value="js/jquery-ui-1.9.2.js">"></script>

在某种程度上是不正确的。

  • 你能让任何 jquery 函数工作吗?
  • 只是 jquery-ui 功能不起作用吗?
  • 您是否自定义了 jquery-ui 下载而不包括手风琴?
  • 你在浏览器调试器中得到 404 吗?
  • 您是否正在打开一个用其他内容覆盖 jQuery 对象的弹出窗口?

使用 jQuery lib 文件的 cdn 托管版本也可能更好。下面获取最新版本并与手风琴一起使用。

<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js' type='text/javascript'></script>
于 2013-01-11T14:16:15.313 回答
0

解决了!

问题是我正在通过以下方式导入一些内容:

<jsp:include page="../includes/index_page_intro_txt.jsp" />

这个 JSP 文件正在重新导入 jquery。把这个拿出来,一切都很好。

特别感谢@NimChimpsky 作为一个共鸣板并让我继续前进。

没有人可以用上面的信息解决这个问题。因此,请让大家知道我是如何解决的:

我首先从文件中删除除了库导入、就绪语句和手风琴 div 块之外的所有内容。然后它起作用了。所以我慢慢地把所有东西都加回来,直到它停止工作,然后调查那个原因。

应该首先做到这一点 - 呃!

于 2013-01-11T16:29:49.260 回答