2016-03-03 58 views
1

我想在页面的头部执行一个js代码,并且让这段代码监视可能从html加载的任何元素,只要它们可用,而不是等待页面完成加载。那可能吗?JQuery - 当它们被加载时的进程元素

我的情况:

我想动态地从页面隐藏一些元素。到目前为止,我一直在$(window).ready(...)函数中这样做,但副作用是元素在该函数启动之前显示一秒。我想在加载并准备显示时立即捕获这些元素而不必等到整个页面加载完毕。

谢谢!

+0

只需使用CSS规则隐藏他们而不是使用脚本 –

+0

即使这回答我的特殊情况,它不回答更通用的问题 –

回答

1

避免你的描述,你可以只扭转你的逻辑的影响,并初步隐藏与CSS的所有元素,然后告诉你

+0

当然这有效,但如果我需要做其他更改文本或其他东西? –

+0

你显示和操作,因为你喜欢用JavaScript在DOM准备好,所以你避免看到东西的影响第二 –

+0

非常感谢!如果你想要,你也可以在答案中加入 –

2

可以隐藏元素“默认”的CSS类,然后,当页面就绪,删除要显示的元素的类。

很简单例如:

HTML

<ul> 
    <li class="hidden to-be-shown">Element A</li> 
    <li class="hidden">Element B</li> 
    <li class="hidden to-be-shown">Element C</li> 
    <li class="hidden to-be-shown">Element D</li> 
    <li class="hidden">Element E</li> 
</ul> 

CSS

.hidden { 
    display: none; 
} 

JS

$(function() { 
    $('.to-be-shown').removeClass('hidden'); 
}); 

这是demo

希望这有助于:)

1

尝试寻找到$(document).load()时,而不是$(document).ready()时,页面呈现

0

那么简单的方法是用CSS来做到这一点的时候触发(显示在页面加载的时候触发:无) 但我想使用jquery你可以尝试

$(window).load(function() { 
    //Code 
}); 

希望这有助于