我想更新我的 pages 的内容/portlet ,无需重新加载整个页面。
我尝试在 navigation.ftl 中使用 jQuery .load()
:
<script type="text/javascript">
$(document).ready(function(){
$("nav#navigation ul li a").click(function(){
var page = $(this).attr("href");
$("#content").load(page);
});
});
</script>
我添加了 e.preventDefault()
来防止按照 Sudakatux 的建议发生默认功能,它可以工作,但这并不能解决我的问题,因为整个页面每次我单击菜单时(包括头部和主体)都会被包裹在 div#content
内(请参见下面的屏幕截图)。
最佳答案
这不是 Liferay 问题。由于您使用的是链接,因此缺少 preventDefault()
:
<script type="text/javascript">
$(document).ready(function(){
$("nav#navigation ul li a").click(function(e){
e.preventDefault(); //You are missing this line
var page = $(this).attr("href");
$("#content").load(page);
});
});
</script>
如果您使用按钮(而不是提交),则不会发生这种情况。意思并不是真正的“Liferay 的错”
关于jquery - 如何在Liferay主题中加载布局而不刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33374716/