成功加载Ajax调用的Struts2 jQuery插件主题

时间:2013-10-15 14:01:50

标签: jquery ajax struts2 struts2-jquery

我希望每次页面成功时都在我的jsp页面中调用一个函数 通过Ajax调用加载。 请考虑以下事项:

|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中添加此代码,则在加载LinkB.jsp和LinkC.jsp时,changeEncodingInput将不适用

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

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

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

有什么想法吗?!

1 个答案:

答案 0 :(得分:1)

经过一些评论后,我发现可以通过在main.jsp下面添加以下内容来实现最佳解决方案。 我希望框架发布了一个事件,但我找不到任何一个,希望框架能够在以后支持它!

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

感谢@Aleksandr的评论!