Переменная jquery вне функции - PullRequest
1 голос
/ 30 октября 2009

Как я могу обновить переменную вне функции? Например, у меня есть это:

        var max_index = 0;

    //loop through the z-index's
    $(".widget_container").each(function(){
        if($(this).attr("z-index") > max_index){
            max_index = $(this).attr("z-index") + 1;
        }
    });

    alert(max_index);

Единственная проблема в том, что max_index всегда предупреждает 0. Как я могу получить это обновление max_index?

Ответы [ 2 ]

3 голосов
/ 30 октября 2009

Да, вы можете обновить переменную, она доступна из внешнего замыкания , проблема в том, что z-index не является атрибутом , это CSS * Свойство 1007 *, вы можете получить его с помощью функции jQuery css :

    var max_index = 0;

    //loop through the z-index's
    $(".widget_container").each(function(){
      if($(this).css('zIndex') > max_index){
        max_index = +$(this).css('zIndex') + 1;
      }
    });

    alert(max_index);

Обратите внимание, что перед сложением я использую знак плюс, то есть унарный оператор плюс, он преобразует значение zIndex в число, поскольку эта функция возвращает строки, и если один из операндов оператора + равен строка, конкатенация сделана ("0" + 1 = "01").

Также обратите внимание, что свойства CSS, содержащие тире, такие как background-color или font-size, доступны при удалении тире и использовании заглавных букв в следующем слове.

0 голосов
/ 30 октября 2009

Я думаю

$(this).attr("z-index") 

должно быть

$(this).css("z-index")

Возвращает строку

Использование:

parseInt($(this).css("z-index"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...