gpt4 book ai didi

javascript - 蛋糕如何防止ctp元素在页面加载时显示

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:47 25 4
gpt4 key购买 nike

我在我的 default.ctp 布局上使用了几个元素,即:

echo $this->element('messagesDialog');
echo $this->element('manualpDialog');

它们属于我的布局,随时可用。在我的 .js 上,我将这些元素隐藏在准备就绪的文档中:

$('#dialog-messages').hide();

问题是这些元素(仅仅是一个带有表格的 div 等)在页面加载时部分可见,这看起来很丑陋且有错误。请注意,由于我的元素在布局上,因此它们会短暂显示在用户看到的任何主页上。

为了防止这些 div 半显示,我想在需要时以某种方式“创建”它们,然后再处理它们。 (我使用 jquery)。

下面的解决方案(来自 How can I make the browser wait to display the page until it's fully loaded? )对我来说很难使用,因为我的 default.ctp 中挤满了元素、脚本代码和蛋糕东西,这些东西都放在一个 div 上。

<body>
<div id="msg" style="font-size:largest;">
<!-- you can set whatever style you want on this -->
Loading, please wait...
</div>
<div id="body" style="display:none;">
<!-- everything else -->
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#body').show();
$('#msg').hide();
});
</script>
</body>

我认为解决方案是让我的元素如

echo $this->element('messagesDialog'); 

仅在适当的时候(当用户想要查看他的消息时)加载到我的布局,并且 - 如果可能的话 - 被删除以防止在页面实例化后加载时半显示。

关于如何实现这一点有什么想法吗?

非常感谢!

最佳答案

如果不需要,则不应加载元素。相反,在布局文件中创建一个 IF 条件,根据 Controller 名称和操作名称加载元素。如果您使用 session 跟踪用户,您还可以将 IF 基于 session 变量。

或者,您可以简单地将元素放入一个 div 中,例如:

<div class="hiddenClass" style="display: none;">
<?php echo $this->element('messagesDialog'); ?>
</div>

然后在您的 javascript 部分使用以下内容: $('.hiddenClass').show();

关于javascript - 蛋糕如何防止ctp元素在页面加载时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com