javascript
  • function
  • 2010-01-13 52 views 0 likes 
    0

    我有我的脚本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,但在那之后的脚本应该ShowAltTag与休息当前图像的新值。

    这可能吗?

    在此先感谢

    +0

    感谢您编辑代码^^ – ValiL 2010-01-13 13:01:34

    +2

    点击确定提醒“finishedB”后,您没有看到“finishedA”提醒?通常情况下,你应该,除非你在FunctionB()中做了一些特殊的事情,以防止它返回正确 – Fortega 2010-01-13 13:01:42

    +0

    确定'InfoVar == 100'? – 2010-01-13 13:03:38

    回答

    2

    您需要使用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语句,并将它放在这两个函数的外部和前面。这会使其成为全局变量。除非实际上有必要,否则不应该使用全局变量。

    您可能想要在JavaScript中阅读this article about local and global variables

    +0

    这是它的新变量CurrentImage :) 感谢所有的帮助,并且我为我所做的混乱道歉^^ – ValiL 2010-01-13 13:28:31

    相关问题