if语句中的函数

时间:2014-05-22 20:38:54

标签: jquery

我有一个类var Page()= {... 在里面我有功能,如下面的那个。但我不知道如果他们的课程是' vg-slideshow',我不确定如何编写一个功能来切换两个bg图像。它没有用。

initFeaturedImages : function () {
            $('.story-page').each(function () {
                var $fImg = $(this).find('.right img');
                if ($fImg.length) {
                    var src = $fImg[0].src;
                    var flipimgsrc = $fImg.data('flipimg');  
                    var type = $fImg[0].className;
                    $($fImg[0]).hide();
                    var $bg = $fImg.parents('.story-page').find('.left');

                    var nextImg = 0; var bgImgs = new Array(src, flipimgsrc);

                    //(typeof type !== 'undefined' && type !== false && type == 'bg') 
                    if (type && type === 'bg') {
                        $bg.css('background-image','url("'+ src +'")');
                    }
                    else if (type && type === 'bg-slideshow') {

                        var doBg = function () {
                             $bg.css('background-image','url("'+ bgImgs[nextImg++] +'")').fadeIn(500, function () { setTimeout( doBg, 1000 ); });
                        };
                    }
                    else if (type && type === 'flip') {
                        //var titlesrc = (title) ? "<li>"+title+"</li>" : "" ;
                        $bg.append('<div id="fc-slideshow" class="fc-slideshow"><ul class="fc-slides"><li><img src="'+src+'" /></li><li><img src="'+flipimgsrc+'" /></li></ul></div>'); 
                    }
                    else if (type && type === 'svg') {
                        $.get(src, function(data) {
                            var $svg = $(data);

                            $bg.append($svg);
                            console.log(data);
                        });
                    }
                    else {
                        $bg.append('<img src="'+src+'" />'); 
                    }
                }
            });
        },

2 个答案:

答案 0 :(得分:0)

我还没有测试过你的doBg函数,但这里有一点突出:

var doBg在if语句中声明,并且从未在if语句中调用。您无法在if语句之外调用它,因为Javascript是lexically scoped。因此,

 var doBg = function () {
     $bg.css('background-image','url("'+ bgImgs[nextImg++] +'")').fadeIn(500, function () { setTimeout( doBg, 1000 ); });
};

什么也没做。

我也相信你的括号不匹配。

答案 1 :(得分:0)

在定义doBg()的if语句中将其添加到代码的底部:

   doBg();