@konstantinborodov

Как передать функции новую переменную?

Выложил упрощенную версию скрипта, никак не пойму в чем дело
Скрипт генерирует случайное число, глобальную переменную.
На странице есть инпут для ввода числа и кнопка для генерации нового.
Суть вот в чем, при генерации нового числа, в функцию проверки это новое число не заносится, есть ли какой то вариант, чтобы функция обрабатывала уже новое значение переменной? Или, если дублировать функцию в действие по клику, то можно ли как то запретить работу функции с предыдущей переменной?
https://jsfiddle.net/ekwb2k6j/1/
<p id="a"></p>
<input id="gen" value="генерация" type="button">
<input id="input" type="text">

body {
	padding-top: 100px;
	text-align: center;
}
input {
	font-size: 24px;
}
p {
	text-align: center;
	font-size: 30px;
}

.green {
	color: green;
}

function getRandomInRange(min, max) {						// случайное число в заданном промежутке
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function randomA() {					// 
	a = getRandomInRange(1, 10);	
	$('#a').text(a);					// вывод а
}
function chek(x, y) {      // x - id инпута, y - переменная
	$(x).change(function(){
		var value = $(this).val();
		console.log(y);
		if (value != y) {
			$(x).addClass("green");
		}
		else {
			$(x).removeClass("green");
			$(x).animate({width: 'toggle'}, 500);
		};
	})
}
function gen() {                         // генерация новой переменной
	$('#gen').on("click", function() {
		$('#input').fadeIn(0);
		randomA();
		$('input:text').val('');
	});
}
$(document).ready(function(){
	$('input:text').val('');
	randomA();
	chek('#input', a);
	gen();
  });
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
nuykon
@nuykon
Full Stack Developer
Поправил, только чтобы работало - https://jsfiddle.net/ekwb2k6j/2/
var a;
function getRandomInRange(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function randomA() {					// 
	a = getRandomInRange(6, 9);	
	$('#a').text(a);					// вывод а
}

function chek(x, y) {      // x - id инпута, y - переменная
		var value = $(x).val();
		if (value != y) {
			$(x).addClass("green");
		}
		else {
			$(x).removeClass("green");
			$(x).animate({width: 'toggle'}, 500);
		}
}

$('#input').change(function(){
  chek(this, a)
})

$('#gen').on("click", function() {
  $('input:text').val('');
  $('#input').fadeIn(0);
  randomA(); 
});

$(document).ready(function(){
	$('input:text').val('');
	randomA();
});

Вообще так не стоит писать...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы