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 时将不适用

但我认为必须有更好的方法。

我正在寻找将 initial.js 文件添加到 Main.jsp 并且不要在每个页面中重复它。

似乎 struts 2 jquery 插件在内部管理 Ajax 事件。可能主题是内部发布的,我们可以订阅它吗?

有任何想法吗?!

4

1 回答 1

1

经过一些审查后,我发现可以通过将以下添加到 main.jsp 来实现最佳解决方案。我希望框架发布了一个事件,但我找不到任何事件,希望框架稍后支持!

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

感谢@Aleksandr 的评论!

于 2013-10-19T11:10:30.633 回答