是否有这样的jQuery插件?
更具体: 我想使用一些优雅而简单的方法推迟一些代码执行,直到它真正需要(某些事件发生)。当这个事件发生时,推迟的代码应该只执行一次。某种懒惰的初始化。
例如,将某些动画应用于元素,而不是在文档准备就绪时,但是当用户将鼠标悬停在该元素上时。
我知道如何以手动方式实现,但我不喜欢它,因为我必须考虑在执行匿名函数之前检查并设置'initialized'标志。我想知道它是否已经完成(没有错误,有一些美味的功能)。
答案 0 :(得分:4)
http://plugins.jquery.com/project/LazyReady
懒惰 一个插件,旨在延迟代码初始化,直到指定的DOM元素与之交互(悬停/聚焦)。
答案 1 :(得分:2)
Lazy Load会延迟加载图片。
答案 2 :(得分:2)
回答更具体的问题:
你真的不需要任何插件吗?只是沿着这些方向做点什么。
只有在用户点击ID为postponedHeavyFunction()
的元素并且仅点击一次后,才会触发功能lazyelement
。
function postponedHeavyFunction() {
// unbind. This guarantees that postponedHeavyFunction will only
// execute once for the event we bound it to #lazyelement
$("#lazyelement").unbind('click', postponedHeavyFunction);
...
//do whatever
....
}
//when event is triggered the function you specify gets run
$("#lazyelement").bind('click', postponedHeavyFunction);
检查http://jsbin.com/agora/是否有愚蠢的演示。
你到底想要什么?什么应该是懒惰加载/懒惰评估?更具体。
懒惰评估(从其他语言知道)Javascript本身不支持AFAIK(作为语言概念)。除了可能适用于&
,|
,&&
,||
等运营商。
如果您只是想让一些javascript延迟加载,其他脚本会查看:Painless JavaScript lazy loading with LazyLoad