排队jQuery插件执行的最佳方法

时间:2011-03-07 13:56:05

标签: jquery

我正在组合galleryView和fancybox插件来加载页面上的一些图片库。

一切都很好但我感觉我很幸运......

这是我在页面加载时所做的事情:

jQuery(document).ready(function(){

    //Bind fancybox links with live 
    jQuery('a.fancybox').live('click', function(){
        jQuery.fancybox(this,{
            'easingIn'  :   'swing',
            'easingOut' :   'swing',
            'transitionIn'  :   'elastic',
            'transitionOut' :   'elastic',
            'speedIn'           :   400, 
            'speedOut'          :   200, 
            'overlayShow'   :   true,
            'overlayOpacity'  : 0.8
        });

        return false;

    });

    //Load Galleryview
    jQuery('#current_gallery').galleryView({
        panel_width: 520,
        panel_height: 345,
        frame_width: 100,
        frame_height: 60,
        transition_interval: 999999999,//To keep the images still
        nav_theme: 'light',
        pause_on_hover: true
    });

});

jQuery(document).ready(function(){

    //Wrap full size image in 'a' tags
    jQuery('div.panel img').each(function(i){

        //Get full size image url
        var full_image_url = jQuery(this).attr('src'); 

        jQuery(this).wrap('<a href=' + full_image_url + ' class="fancybox" />')


    });

});

基本上我按顺序排队执行调用两个.ready()函数。 Galleryview修改DOM,我的第二个.ready()包装来自修改后的DOM的元素。它有效,但我是否遵循正确的方法?我称这个脚本使用Ajax加载其他画廊,再次没问题......

我应该使用这样的东西:

$(function () {
window.setTimeout(function () {

    //Wrap full size image in 'a' tags
jQuery('div.panel img').each(function(i){

//Get full size image url
var full_image_url = jQuery(this).attr('src'); 

jQuery(this).wrap('<a href=' + full_image_url + ' class="fancybox" />')

})}, 0);

有什么建议吗?

谢谢。

0 个答案:

没有答案