2014-11-26 3 views
0

Я знаю, что это будет очень очевидный ответ для вас, ребята, но, пожалуйста, имейте в виду, что я недавно начал изучать JS, и это один из единственных принципов, которые я не понимаю ,Доступ к локальной переменной вне функции

Я пытаюсь найти способ сделать переменную внутри функции глобальной. Я покажу вам свой код, поэтому, возможно, вы поймете:

$('#inputSubmit').click(function() { 
    addText_1("Good, your character's name is " + getInput() + "."); 
    condition1 = true; 
}); 
if(condition1 == true) { 
    addText_1("Now") 

};

Я пытаюсь найти способ, чтобы оператор if мог получить доступ к переменной condition1, чтобы выполнить следующую строку кода.

По какой-то причине оператор if не может получить доступ к значению condition1 внутри события click.

Кроме того, возможно, вы знаете лучший способ, которым этот способ делать то, что я пытаюсь сделать. В основном, я пытаюсь написать код, который будет использовать функцию addText_1, если щелкнуть #inputSubmit. Если вы знаете другой способ сделать это, я хотел бы знать.

Большое спасибо за помощь, и я сожалею, если этот вопрос был не очень ясен.

+2

Хорошие новости! Ваша переменная «condition1» не является локальной переменной, потому что вы забыли объявить ее с помощью «var». (Я имею в виду.) В случае локальной переменной * * *, вы не можете без функции, требующей, чтобы вы могли это сделать. – Pointy

+0

Локальные переменные являются локальными. В этом-то и дело. Если вы хотите, переместите его на уровень ниже локального, что создаст закрытие. – tadman

+0

О, хорошо, но есть ли причина, по которой моя инструкция if не выполняется? – Jigsaw

ответ

0

Основная проблема - это ось времени вашего кода. Althought код строится с 2-х блоков, последний блок на самом деле запустить ДО первого блока

$('#inputSubmit').click(function() // occurs when the user click (#2) 
{ 
    addText_1("Good, your character's name is " + getInput() + "."); 
    condition1 = true; 
}); 

if(condition1 == true) // occurs when the page load (#1) 
{ 
    addText_1("Now") 
}; 

я предполагаю, что вы пытаетесь сделать, это:

$('#inputSubmit').click(function() 
{ 
    addText_1("Good, your character's name is " + getInput() + "."); 
    addText_1("Now") 
}); 
+0

Большое спасибо, вы мне помогли. – Jigsaw