我在我的 default.ctp 布局中使用了几个元素,即:
echo $this->element('messagesDialog');
echo $this->element('manualpDialog');
它们属于我的布局,随时可用。在我的 .js 上,我将这些元素隐藏在准备好的文档中:
$('#dialog-messages').hide();
问题是这些元素(只是一个带有表格的 div 等)在页面加载时部分可见,这看起来很丑陋且有问题。请注意,由于我的元素在布局中,它们会短暂地显示在用户看到的任何主页上。
为了防止这些 div 半显示,我想在需要时以某种方式“创建”它们,然后将它们处理掉。(我使用jQuery)。
下面的解决方案(来自How can I make the browser waiting to display the page until it's fully loaded?)对我来说很难使用,因为我的 default.ctp 非常拥挤,元素和脚本代码以及蛋糕的东西都放在一个单格
<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');
仅在适当的时候(当用户想要查看他的消息时)加载到我的布局中,并且 - 如果可能的话 - 被删除以防止在页面被实例化后半显示为页面加载。
关于如何做到这一点的任何想法?
非常感谢!