2016-02-22 3 views
1

У меня есть этот код пытается изменить глобальную переменную ipad:Попытка изменить значение глобальной переменной

$(document).ready(function() { 
    "use strict"; 
    var ipad=0; 
    var android=0; 
    var windows=0; 

    $("#ipad").click(function() { 
     ipad=10; 
     android=0; 
     windows=0; 
     $("#ipad").css('background-color','#C30'); 
     $("#android").css('background-color','#0C0'); 
     $("#windows").css('background-color','#0C0'); 
     $("#not_important").css('background-color','#0C0'); 
    }); 

    document.getElementById("res").innerHTML = ipad; 
}); 

Но когда я нажимаю на кнопку ipad, я не могу получить желаемый результат (10). Может ли кто-нибудь сказать, пожалуйста, скажите мне, где я ошибаюсь? Спасибо.

+0

Btw, 'ipad' на самом деле не является глобальным. Он все еще находится в рамках вашей функции 'ready' – Marc

ответ

0

У вас есть #iPad обработчик щелчка, который изменяет значение переменной IPad, но ваш следующий код не в тот же обработчик

document.getElementById("res").innerHTML = ipad; 

Так что ваш элемент «Рез» значение будет начальное значение, которое " 0 ",

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

$("#ipad").click(function(){ 
      ipad=10; 
      android=0; 
      windows=0; 
      $("#ipad").css('background-color','#C30'); 
      $("#android").css('background-color','#0C0'); 
      $("#windows").css('background-color','#0C0'); 
      $("#not_important").css('background-color','#0C0'); 
      document.getElementById("res").innerHTML = ipad; 
    }); 

Вот Jsfiddle example

Надеется, что это помогает!

+0

, но я хочу, чтобы ipad var оставался глобальным, потому что я хочу добавить это значение в другое значение позже. Как я могу это исправить? Любая дополнительная помощь? – antonis

0

Эта линия:

document.getElementById("res").innerHTML = ipad; 

работает, когда документ будет готов, прежде чем нажать кнопку Скины, то есть: обработчик щелчка еще не работать (он будет работать при нажатии на кнопку), поэтому переменная ipad в то время, когда вы установили ее как html-содержимое res, по-прежнему 0.

простым решением было бы разместить эту строку внутри обработчика.

+0

спасибо, но я хочу, чтобы ipad var оставался глобальным, потому что я хочу добавить это значение в другое значение позже. Как я могу это исправить? Любая дополнительная помощь? – antonis

+0

'ipad' все равно будет« глобальным »(в рамках функции готовности), поскольку он был определен вне обработчика кликов. Вам просто нужно быть осторожным и работать с переменной, когда вы знаете, что правильное значение было установлено (например: когда вы точно знаете, что пользователь уже нажал '# ipad'). – Sebastianb

Смежные вопросы