我的脚本中有 2 个函数:
function ShowAltTag(){
var CurrentImage = $("#ShowImage img").attr("src");
if( $.browser.msie ) {
IECurrentImage (CurrentImage);
}
if ($(".ImageRoller img[src='" +CurrentImage+ "']").attr("alt")){
var alt = $(".ImageRoller img[src='" +CurrentImage+ "']").attr("alt");
$("#ShowImage").append("<div class='alt'><span>" +alt+ "</span></div>");
$("#ShowImage div.alt").fadeIn("fast");
}
}
function IECurrentImage (CurrentImage)
{
var loc = document.location.href;
CurrentImage = CurrentImage.replace(/\ /g, "%20");
CurrentImage = loc.substring( 0, loc.lastIndexOf( '/' ) ) +'/'+ CurrentImage;
}
如果浏览器是 IE,它将启动函数 IECurrentImage ,但之后脚本应该使用 Current Image 的新值来创建 ShowAltTag 的其余部分。
这可能吗?
提前致谢
最佳答案
您需要使用return
关键字返回新值,并将该变量分配给第一个函数中的CurrentImage
变量。
function IECurrentImage (CurrentImage)
{
var loc = document.location.href;
CurrentImage = CurrentImage.replace(/\ /g, "%20");
return loc.substring( 0, loc.lastIndexOf( '/' ) ) + '/' + CurrentImage;
}
function ShowAltTag()
{
var CurrentImage = $("#ShowImage img").attr("src");
if ( $.browser.msie ) {
CurrentImage = IECurrentImage(CurrentImage);
}
// Etc.
}
尽管两个函数中的变量具有相同的名称,但它们实际上是不同的变量,因为每个函数都有自己的变量范围。
或者,您可以删除现有的 var CurrentImage
语句并将其放在这两个函数的外部和前面。这将使它成为一个全局变量。除非确实有必要,否则不应使用全局变量。
您可能想阅读this article about local and global variables在 JavaScript 中。
关于javascript - 完成第二个功能后重新启动第一个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056721/