2014-10-06 55 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