如何加载布局而不在Liferay主题中刷新?

时间:2015-10-27 17:30:25

标签: jquery ajax liferay liferay-6

我想更新http://bla/api的内容/ portlet,而不重新加载整个页面。

pages

我尝试在 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内包裹(请参阅下面的屏幕截图)。

enter image description here

1 个答案:

答案 0 :(得分:4)

这不是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的错误&#39;