2014-10-06 2 views
1

У меня есть форма в стойках 2 webapp. У меня плагин плагина jquery прекрасно работает. Однако на некоторых из моих страниц я перегрузочные ДИВ в зависимости от взаимодействия с пользователем, и я, используя следующий JavaScript, чтобы представить действия и перезагрузить дивы на странице:struts 2 jquery внутренний 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();  
} 

Это все работает отлично, за исключением того, когда я перезагрузить DIV с результат действия, ни один из тэгов jquery не отображается правильно на новой странице в div. Обычные распорки ы: теги делать правильно делают на новую страницу в DIV На новой внутренней странице я включил те же теги, как на главной странице:

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

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

Любая помощь по этому вопросу будут оценены.

Распорки 2 версии 2.3.16.3 распорки 2 JQuery плагин версия: 3.7.1

Spunog

+0

Прежде всего: http://api.jquery.com/jquery.ajax/. Если вы уже используете '' на главной странице, не включайте его в загруженный jsp. –

+0

Изучите плагин struts2-jquery и напишите теги, если вы не можете писать javascript? –

ответ

0

Проблема заключается в том, что Struts2-JQuery-плагин генерирует скрипты, работающие на document.ready() обработчика.

Они прекрасно работают при загрузке страницы, но они не запускаются в случае фрагмента JSP, полученного через вызов AJAX.

Для этой проблемы working and tested solution.

Для общих тем о Struts2 и AJAX вы также можете прочитать this answer.

+0

Я нахожу, что немного трудно следовать, поскольку я использую только jquery через теги struts. Не могли бы вы объяснить, что мне нужно сделать, пожалуйста? Я просто положил на моей внутренней странице? – Spunog

+0

Вам нужно 1) Повысить свою ставку досрочного голосования на StackOverflow, это бесплатный способ вознаградить людей за усилия, которые они прикладывают к помощи другим; затем 2) ПЕРЕДАЙТЕ обработчик document.ready, как описано в этом ответе, и 3) APPEND a как LAST LINE каждого фрагмента JSP, возвращаемого через приложение AJAX. Вся работа уже выполнена, есть также пример выполнения ... просто скопируйте вставку и прочитайте каждую строку ответа. –

Смежные вопросы