2014-10-06 81 views
1

我在struts 2 webapp中有一个表单。我有jquery插件插件很好地工作。但是在我的一些网页,我重装div的根据用户交互和现在用的是下面的JavaScript页面上提交的行动和重新加载的div:struts 2 jquery inner html

function doWhatever() 
{  

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("mydiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","MyAction.action?id="+1); 
xmlhttp.send();  
} 

这一切工作正常,除非我重新加载分度,结果的行动,没有一个jquery标签在div内的新页面上正确呈现。常规支柱S:标签不正确地呈现新的一页在新的内页中的DIV中我已经包含了相同的标签,在主页上:

<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sjq" uri="/struts-jquery-tags"%> 

<html> 
<head> 
<sj:head /> 
</head> 

任何帮助,在此,将不胜感激。

Struts 2的版本2.3.16.3 支柱2 jQuery插件版本:3.7.1

Spunog

+0

首先:http://api.jquery.com/jquery.ajax/。如果您已经在主页面中使用了'',那么请不要将它包含在加载的jsp中。 – 2014-10-06 11:10:40

+0

学习struts2-jquery插件和写标签,如果你不能写JavaScript的? – 2014-10-06 11:40:00

回答

0

的问题是,Struts2的,jQuery的插件生成的document.ready()处理程序运行的脚本。

它们在页面加载时工作正常,但在通过AJAX调用返回的JSP代码段中不会触发它们。

这是对此问题的working and tested solution

有关Struts2和AJAX的一般主题,您可能还需要阅读this answer

+0

我发现有点难以遵循,因为我只通过struts标签使用jquery。你能说出我需要做什么吗?我只是把在我的内页? – Spunog 2014-10-06 13:06:36

+0

您需要:1)提高您在StackOverflow上的投票率,这是您可以免费奖励人们帮助他人的努力;然后2)重新定义document.ready处理程序,如答案中所述,3)APPEND a 作为您的应用程序中通过AJAX返回的每个JSP片段的最后一行。所有的工作已经完成,还有一个正在运行的例子...只需复制粘贴,并阅读答案的每一行。 – 2014-10-06 13:55:02