Перезапустите первую функцию после завершения второй - PullRequest
0 голосов
/ 13 января 2010

У меня есть 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 с новым значением Current Image.

Это вообще возможно?

Заранее спасибо

1 Ответ

2 голосов
/ 13 января 2010

Вам необходимо использовать ключевое слово 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...