Вход

Просмотр полной версии : Как продолжить цикл по кнопке?


Dimaz
29.11.2012, 18:25
Всем привет. Есть такой код:

//...
var x=1;
for(var i=0; i<3; i++) {
//какой-то код
for(var i2=0; i2<5; i++) {
//тоже какой-то код
}
x--;
if(x==1) {
continue;
}
else {
break;
}
}
row += '<button onclick="return false; b++;">Далее</button></form>';
$('#feeds').html(row);
//...

Цикл делает только один круг и останавливается, так как я изменяю значение переменной x в первом цикле. Как можно сделать, чтобы после нажатия кнопки он продолжился дальше? Нажимаю кнопку, значение переменной x увеличивается на единицу, т.е. по идее снова соблюдается условие продолжения цикла. Но он все равно стоит на месте. Что я делаю не так?

dmitriymar
29.11.2012, 19:44
Нажимаю кнопку, значение переменной x увеличивается на единицу,
где?
onclick="return false; b++;">

Как можно сделать, чтобы после нажатия кнопки он продолжился дальше?
открой для себя функции
Но он все равно стоит на месте. Что я делаю не так?
а собственно почему он должен работать ? он уже отработал.
если ты надеешься что во время работы цикла ты можешь нажать на кнопку и код кнопки отработает параллельно с работой цикла-он отработает после того как отработает код вызванный до нажатия кнопки

Dimaz
29.11.2012, 19:50
Тут неправильно написал. У меня в скрипте x++

Dimaz
29.11.2012, 19:52
Так как тогда сделать, чтобы по кнопке он дальше продолжил работу?
Понял, оператор break тут лишний. Нужен только continue. Но все равно как сделать?

Dimaz
29.11.2012, 20:07
Сделал так, но все равно не работает:
//...
var x=1;
for(var i=0; i<3; i++) {
//какой-то код
for(var i2=0; i2<5; i++) {
//тоже какой-то код
}
x--;
if(x==1) {
continue;
}
}
row += '<button onclick="return false; x++;">Далее</button></form>';
$('#feeds').html(row);
//...

Почему он полностью выполняет цикл, если я вычел единицу из переменной x?

9xakep
29.11.2012, 20:10
тебе уже сказали: используй функции.

x=false;

function button() {
if (x) alert('button')
}
/* тут ты творишь там что-то*/
x=true;
button();
x=false;
button();
x=true;
button();

dmitriymar
29.11.2012, 20:19
Почему он полностью выполняет цикл, если я вычел единицу из переменной x?
if(x==1) {
continue;
}
ну а где ты ему сказал break ?
Так как тогда сделать, чтобы по кнопке он дальше продолжил работу?
Понял, оператор break тут лишний. Нужен только continue. Но все равно как сделать?
ничего ты вообще не понял. нельзя выполнить код во время того как другой код выполняется.
в твоём случае кнопка появляется после того как цикл отработал.
а еслиб кнопка была до цикла, то код её нажатия выполнился бы только после того как цикл полностью отработал бы

Dimaz
29.11.2012, 20:42
Вот полностью код:
$(document).ready(function(){
$('form input:image').click(function() {
var drink = $('input[name=drink]:checked').val();
$.post('save_data.php', {drink: drink},
function(data){
if(data) {
var fieldsCount = data.length;
var row = '';
var b = 1;
if(fieldsCount) {
row = '<form>';
for (var i in data) {
row += '<b>' + data[i].questions + '</b><Br>';
var ss = data[i].answers.split(',');
for (var i2 = 0; i2<ss.length; i2++) {
row += '<input type="radio" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>';
}
b--;
if(b==1) {
continue;
}
}
row += '<button onclick="return false; b++;">Далее</button></form>';
$('#feeds').html(row);
}
}
}, "json");
return false;
});
});
Вообщем он должен вывести сначала первый вопрос и варианты ответов, а как нажимаешь кнопку, вывести другой вопрос с другими вариантами. Помогите, ну не знаю как сделать:(

A_Kto
28.09.2017, 12:49
<form>
<input type="button" name="putButton" id="putButton" value="Click" onclick="click()">
</form>

<script>
var x = 0;
function click() {
for (var i = 0; i < 1; i++) {
x++;
if (x <= 5) {
alert(x);
continue;
} else {
break;
}
}
}
</script>