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、すべてがjqueryuiアコーディオンの例と同じように設定されています。

ところで、私は過去3時間インターネットをトロールし、タイプミスによって修正された同様の問題を見つけました。これはタイプミスではありません。jqueryUIとSpringMVCに関してこのようなものは見つかりません。

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 に感謝します

上記の情報で誰もこれを解決できなかったはずです。だから、私がそれをどのように解決したかを皆さんに知らせてください:

ライブラリのインポート、ready ステートメント、アコーディオン div ブロック以外のすべてをファイルから削除することから始めました。その後、うまくいきました。そのため、機能しなくなるまでゆっくりとすべてを元に戻し、その原因を調査しました。

そもそもそれをすべきだった-当たり前!

于 2013-01-11T16:29:49.260 に答える