<script type='text/javascript' src='js/jquery.js'></script>
<script type="text/javascript">
$(document).ready(function() {
$("#gt").click(function() {
$("#internal").load('second.jsp'); //not working....
alert("loaded");
});
});
</script>
Happy new year...................
<a href="#" id="gt"> Click me </a>
<p id="para"></p>
<div id="internal"> a</div>
我正在与Liferay 6.1一起工作。 JQuery正常工作......我能够更改innerHTML的分区和警报框也来了..但是无法在div中加载页面。相同的代码在简单的动态Web项目中正常工作。 任何身体都可以帮助我...
答案 0 :(得分:3)
确保您的第二个.jsp可供您的webbrowser使用:您处于portlet环境中,因此您不能假设./second.jsp
指的是jsp所在的目录,即提供您粘贴的内容在你的问题。很可能你需要一个不同的路径 - 如果你的jsp在/WEB-INF
,你甚至需要将它移动到其他地方,以便可以动态请求它。
此外,如果second.jsp需要访问门户网站会话,则最好使用对portlet的资源请求。 <portlet:resourceURL/>
将是您的朋友。
正如charlietfl在对您的问题的评论中建议的那样,最好的方法是在浏览器中使用HTTP级别的输出(例如,firebug)并查看实际发送的请求类型。
此外,当您在门户环境中时,您可能希望将<portlet:namespace/>
附加/前置到您提供的ID中 - 否则当您的portlet被添加到页面时,您将有重复的ID (或其他人选择使用相同的ID)
答案 1 :(得分:0)
你没有指定任何在加载后调用的回调函数。
$('#reinternalult').load('second.jsp', function() {
alert('Load was performed.');
});
确保second.jsp
的路径正确并正确输出html
也尝试直接从浏览器调用second.jsp并查看你得到的内容
答案 2 :(得分:0)
也可以使用.on()方法代替.click()方法。这将使您免于DOM膨胀
$(document).ready(function(){ $('body')。on('click','#gt',function(){
$("#internal").load('second.jsp', function(){
alert("loaded");
});
});
});