我有一个类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+'" />');
}
}
});
},
答案 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();