【问题标题】:Hiding divs on page load with jQuery UI Accordion widget使用 jQuery UI Accordion 小部件在页面加载时隐藏 div
【发布时间】:2014-07-03 13:02:43
【问题描述】:

我正在使用 jQuery Accordion。当页面加载时,所有的 div 在被隐藏之前都会闪烁一秒钟。我希望 div 在加载时保持隐藏状态。我以为我是通过在文档就绪检查之外通过 javascript 将它们设置为隐藏来做到这一点的,如下所示:

$('#accordion div').hide();
$('#accordion2 div').hide();

jQuery(document).ready(function($) {...

但这不起作用,我怀疑这是因为我正在使用尚未声明的 $ 快捷方式。

如何在页面加载时触发 hide() 函数,而不是等到页面完全加载后再隐藏 div?

谢谢!

【问题讨论】:

  • 请提供更多详细信息,例如您的 html。您可能正试图隐藏一些尚不存在的东西。

标签: javascript jquery jquery-ui


【解决方案1】:

它不起作用的原因是因为您试图在元素存在之前隐藏它们。如果您将代码放在页面末尾,它会起作用,但即便如此,您也不确定它们是否在一瞬间不可见。

改用 CSS 来隐藏它们,然后当它们出现时就已经隐藏了:

<style type="text/css">

#accordion div, #accordion2 div { display: none; }

</style>

【讨论】:

  • 我以为我之前尝试过但没有成功,但现在尝试了它并且成功了。我一定有其他东西阻止代码正常工作。谢谢。
  • @Kwestion:是的,这种方法是最初隐藏元素的最佳方式。如果你有页面的样式表,你宁愿把规则放在那里而不是放在样式标签中。
【解决方案2】:

这些语句试图隐藏尚未加载的内容:

$('#accordion div').hide();
$('#accordion2 div').hide();

使用 jQuery 你应该这样写:

$(function(){
    $('#accordion div').hide();
    $('#accordion2 div').hide();
});

所以,代码会在加载完html文档的骨架后执行

【讨论】:

  • 此解决方案也可以,但会在页面刷新时闪烁所有 div。感谢您更正我的代码。
猜你喜欢
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多