Задать вопрос
@jemanov

Как последовательно автоматически изменить значение SELECT, без лишнего запуска обработчика?

$(document).ready(function() 
   	{ 
  	$('SELECT').on('change', function() { go(); });
	});
	
function go()
	{
	if ($('SELECT').val() > 1) 
			{
			//alert( $('SELECT').val() );	
			var prev_factor = $('SELECT').find(':selected').prev().val();
			$('SELECT').val(prev_factor);
			go();   //перезапуск функции
			}
	$("BODY").append("<BR><BR>"+$('SELECT').val());  // результат
	}

<BODY>

<SELECT>
	<OPTION value='1'>1</OPTION>
	<OPTION value='2'>2</OPTION>
	<OPTION value='3'>3</OPTION>
	<OPTION value='4'>4</OPTION>
</SELECT>
</BODY>


Собственно вопрос вот в чем, как добиться того, что бы был пересчет до определенного значения, что бы после выполнения условия, обработчик события не вызывался автоматически ?

Обработчик при старте убирать нельзя, так как запуск всей этой конструкции должен быть вручную с этого самого SELECT'а

Значения лучше пересчитывать последовательно как в примере, так как конечное значение может требоваться разное, и производится его поиск. (пример просто упрощен.)

Как это работает сейчас.

Если оставляем "go(); //перезапуск функции" - то рисует либо 4 единицы, оно и понятно вызывается событие которое запущено не человеком, а обработчиком ".on". Либо 1 2 3 4 (именно в таком порядке!?!?) - что не понятно.

Если удаляем "go(); //перезапуск функции" - то выполняется один раз, что тоже не понятно почему, ведь к значению так и не пришли нужному и по идее условие должно срабатывать еще несколько раз.
  • Вопрос задан
  • 214 просмотров
Подписаться 2 Оценить 13 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 16:13
50000 руб./за проект
23 дек. 2024, в 15:25
5000 руб./за проект
23 дек. 2024, в 14:47
4500 руб./за проект