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

标签 jquery ajax liferay liferay-6

我想更新我的 pages 的内容/portlet ,无需重新加载整个页面。

enter image description here

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

The page is repeated inside the 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/

相关文章:

java - 如何为不属于该组织的用户授予角色组织管理权限?

jquery - fancybox 将标题放在顶部并留在那里

javascript - 为什么在 IE8 中 Jquery 插件内设置的选项为 "Null or no object"?

jquery - 在第一次滚动时运行函数,然后不再运行

javascript - 每次点击 jquery 更改值

c# - 如何在加载所有相关数据之前不显示 JQuery 对话框?

javascript - Post ajax 请求发送选项请求而不是 post

hibernate - 通过 Hibernate 或 JDBC 使用 Liferay DB

javascript - 从 ajax 发布时,nodejs express session 未定义

calendar - 音频 : Event rendering issue in month view