Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Остановить функцию внутри другой функции (https://javascript.ru/forum/misc/32207-ostanovit-funkciyu-vnutri-drugojj-funkcii.html)

sliv 07.10.2012 17:28

Остановить функцию внутри другой функции
 
Народ, есть такая проблема. Есть 2 кнопки. Нажимаем на одну из них, ей присваивается ай-ди. Затем проверяем кнопку с полученным ай-ди. Если валью == 0, то при нажатии на третью кнопку с id="0but" выполняется одна функция, если ==1, то другая.
Проблема в том, что при повторном нажатии на какую-либо из первых двух кнопок и затем кликании на третью, происходит уже выполнение 2-х функций, ну и так далее. В общем, как остановить выполнение предыдущей функции при повторном нажатии на одну из двух первых кнопок?
Вот хтмл:
<div class="btn-group main" data-toggle="buttons-radio">
<button class="btn" value="0">Менее 4-х</button>
<button class="btn" id="selBut" value="1">Более 4-х</button>
</div>
<div class="btn-group" data-toggle="buttons-checkbox" id="but_gr">
<p>Убрать мутность: <button class="btn" id="0but">Компонент 1</button></p></div>

Вот скрипт:
$('.main button').click(function(){
$('#selBut').removeAttr('id');
$(this).attr('id','selBut');
if($('#selBut').attr('value')==0){
$('#0but').click(function(){
alert("1");
});
}
else if($('#selBut').attr('value')==1){
$('#0but').click(function(){
alert("0");
});
}
});

dmitriymar 07.10.2012 17:54

что значит остановить? может выйти из неё?. проверять какое то условие и делать return

sliv 07.10.2012 17:59

Хорошо. Можно ли в данном случае при первичном нажатии на одну из первых двух кнопок проверить выполняется ли уже функция, стартующая при нажатии на третью кнопку и ,если да, то выйти из нее?

dmitriymar 07.10.2012 18:01

Цитата:

Сообщение от sliv
а одну из первых двух кнопок проверить выполняется ли уже функция

можно поставить флаг какойто при начале выполнения функции и по окончании его убирать. Состояние флага -проверять можно

Maxmaxmахimus 07.10.2012 18:02

функции выполняются с точки зрения пользователя - моментально, он не может успеть их остановить или запаузить.

п.с. тред не читал

sliv 07.10.2012 18:07

Цитата:

Сообщение от dmitriymar (Сообщение 208670)
можно поставить флаг какойто при начале выполнения функции и по окончании его убирать. Состояние флага -проверять можно

Спасибо за идею, попробуем реализовать!


Часовой пояс GMT +3, время: 11:32.