微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

懒惰加载插件(jQuery)

$('a.lightBox').hover(function () {
    if (jQuery().lightBox) {
        // required,otherwise lightBox.js will be loaded on hover each time
        $("a.lightBox").lightBox({
            'type': 'iframe','overlayOpacity': 0.5,'width': 632,'hideOnContentClick': false
        });
    } else {
        // load script
        $.ajax({
            url: "js/lightBox.js",dataType: 'script',cache: true,success: function () {
                // load css
                $('head').append('<link rel="stylesheet" type="text/css" href="css/lightBox.css">');
                // lightBox function
                $("a.lightBox").lightBox({
                    'type': 'iframe','hideOnContentClick': false
                });
            }
        });
    }
});

…这在本地机器上完美运行,但在上传到服务器时效果不佳,因为12kb lightBox.js和lightBox.css需要一些时间来加载.

我想做其中任何一个

>开始在悬停时加载js / css,但禁用’click’表示x秒,直到它们被加载.
> Onclick,将函数延迟x秒打开灯箱,直到加载js / css.
>加载页面后,延迟加载lightBox.js和lightBox.css约1分钟.

我更喜欢第三种选择,但不知道如何实现其中任何一种.

我很感激任何帮助!谢谢!

解决方法

success: function () {
    // load css
    $('head').append('<link rel="stylesheet" type="text/css" href="css/lightBox.css">');

    WaitLightBox(function () {/*lightBox funcion*/});
}


function WaitLightBox(callback)
{
    if (jQuery().lightBox === undefined)
        setTimeout(function(){WaitLightBox(callback);},100);
    else
        callback();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐