1

ページが Ajax 呼び出しによって正常にロードされるたびに、jsp ページで関数を呼び出したいと考えています。以下を検討してください。

|Main.jsp--------------------------------------|
|         Link A    Link B    Link C           |
|                                              |
|         -<div id="content">----------        |
|         |                           |        |
|         |                           |        |
|         |                           |        |
|         |                           |        |
|         ----------------------</div>-        |
|                                              |
|----------------------------------------------|

各リンクは、LinkA.jsp、LinkB.jsp、および LinkC.jsp を呼び出します。リンクは以下のとおりです。

<sj:a href="%{urlA}" targets="content">LinkA</sj:a>
<sj:a href="%{UrlB}" targets="content">LinkB</sj:a>

jsp ファイルのロード時に呼び出す必要のある一般的な JavaScript 関数があります。これらの一般的なファイルを initial.js に記述して、すべての jsp ページに追加できます。

<script type="text/javascript" src="<s:url value="initial.js" />"></script>

すべてのjspファイルにはフォームが含まれており、以下のようなすべての入力で共通の関数を操作したい:

$( document ).ready(function() {
   $("input").changeEncodingInput();
}); 

このコードを Main.jsp に追加するchangeEncodingInputと、LinkB.jsp と LinkC.jsp を読み込んだときに適用されません。

しかし、もっと良い方法があるはずだと思います。

私は Main.jsp に initial.js ファイルを追加することを探していますが、すべてのページでそれを繰り返さないでください。

struts 2 jquery プラグインが内部で Ajax イベントを管理しているようです。トピックが内部で公開されている可能性があり、それを購読できますか?

何か案は?!

4

1 に答える 1

1

いくつかのレビューの後、main.jsp に以下を追加することで、最善の解決策が得られることがわかりました。フレームワークがイベントを発行することを望みましたが、何も見つかりませんでした。フレームワークが後でそれをサポートすることを願っています!

$(document).ajaxStop(function() {
    $("input[lang='fa']").changeEncodingInput();
});

@Aleksandr のコメントに感謝します。

于 2013-10-19T11:10:30.633 に答える