Может кто-нибудь объяснить мне, почему это не работает:JQuery глобальной переменной
$(function() {
var damg = $(".hidden").val();
$("button").click(function() {
alert(damg);
});
});
jsFiddle: http://jsfiddle.net/raFnT/
Хорошо ли использовать глобальные переменные? Я также читал, что это более медленный вариант, чем написание его каждый раз?
Чтобы подробно объяснить:
У меня есть это:
$("button").click(function() {
alert(damg);
});
и damg является значение входа: var damg = $(".hidden").val();
Когда вы печатаете что-то во входном потоке, а затем нажмите кнопку, предупредить значение этого входа.
я мог бы использовать
$("button").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
, но в какой-то момент, что у меня будет 100 функций я в конечном итоге, как это:
$("button1").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
$("button2").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
$("button3").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
$("button4").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
$("button5").click(function() {
var damg = $(".hidden").val();
alert(damg);
});
Я хочу установить глобальную переменную так, чтобы на каждой функции Мне не нужно снова вызывать функцию.
Что-то вроде этого:
var damg = $(".hidden").val();
$("button1").click(function() {
alert(damg);
});
$("button2").click(function() {
alert(damg);
});
$("button3").click(function() {
alert(damg);
});
$("button").click(function() {
alert(damg);
});
$("button4").click(function() {
alert(damg);
});
$("button5").click(function() {
alert(damg);
});
Это отлично работает. Проблема в том, что в то время, когда вы вызываете 'var damg = $ (". Hidden "). Val();', поле еще не имеет значения. И 'damg' не * глобальный *. Он локален для непосредственной функции. –
Введите что-то на вход, а затем нажмите кнопку. – jQuerybeast
И? Он будет предупреждать о пустом значении. Поскольку значение поля ввода присваивается 'damg' при загрузке страницы, а не при нажатии кнопки. Если вы хотите, чтобы «damg» обновлялся всякий раз, когда изменяется значение поля, вам нужно настроить обработчик события «change» для текстового поля. Строка не обновляется автоматически. –