Liferay 7 主题:更改页面时不会触发 docment.ready()

问题描述 投票:0回答:3

我正在开发一个liferay 7主题,并且我在我的主菜单上绑定了一些JS。 我所有的 js 都在 document.rdy 事件中。 但我看到的是,当我更改页面时,没有触发 document.ready(),并且菜单上的所有 js 绑定都丢失了。

我该怎么办?

javascript liferay liferay-7
3个回答
0
投票

我也经历过。如果您不需要 liferay 站点成为单页应用程序,请在 Portal-ext.properties 中关闭该功能:

javascript.single.page.application.enabled = false

然后重新启动。


0
投票

不要使用

$(document).ready()
,而是使用
AUI().ready()
。 Liferay 7 使用 SennaJS (SPA),因此加载页面时不会触发
$(document).ready()
(窗口重新加载时除外)。

参见: https://portal.liferay.dev/docs/7-0/tutorials/-/knowledge_base/t/automatic-single-page-applications

https://portal.liferay.dev/docs/6-2/tutorials/-/knowledge_base/t/understanding-your-themes-javascript-callbacks-in-main-js


0
投票

您正在寻找基于 Liferay 应用程序的 SPA 的

Liferay.on("endNavigate")
生命周期事件。将您的文档就绪代码更改为如下所示:

$(document).ready(function() {
   function init() {
      console.log("Page loaded");
      // bind your events here.
   }
  
   init();

   Liferay.on("endNavigate", init);
 
});
当您从一个页面导航到另一页面时,将调用

init

© www.soinside.com 2019 - 2024. All rights reserved.