我是javasript和jQuery的新手,我正在尝试制作一个简单的脚本来淡出图像并用随机图像替换它。
当下一个要褪色的图像不称为“curImg”时,以下情况有效。我想也许我的nextImg功能无法生成,但它似乎正在准备一个准确的图像位置字符串(为什么我有警报功能)。
在您看到我的错误的任何地方,我都会感激您的帮助!非常感谢,对不起新手级别代码XD。
$.fn.preload = function() {
this.each(function(){
$('<img/>')[0].src = this;
});
}
function nextImg() {
var curImg = "images/";
var randomNumber=Math.floor(Math.random()*11)
curImg += randomNumber;
curImg += ".jpg";
alert(curImg);
$([curImg]).preload();
}
nextImg();
$("document").ready( function() {
$("#umom1").animate({
opacity: 0
}, 1900,function() {
$("#umom1").attr("src", curImg);
$("#umom1").animate({
opacity: 1
}, 1900);
});
});
答案 0 :(得分:3)
您有一个可变范围问题,curImg
未在全局范围内定义,它在本地函数范围内定义,因此您无法从函数本身以外的任何位置访问它。
由于您在var
函数中使用了nextImg()
关键字,因此变量的生命周期仅限于该函数。
我建议从curImg
返回nextImg()
变量,如下所示:
function nextImg() {
var curImg = "images/";
var randomNumber = Math.floor(Math.random()*11);
curImg += randomNumber;
curImg += ".jpg";
alert(curImg);
$([curImg]).preload();
return curImg;
}
您的ready
函数应如下所示:
$(document).ready(function() {
var img = nextImg();
$("#umom1").fadeOut(1900, function() {
$("#umom1").attr("src", img);
$("#umom1").fadeIn(1900);
});
});