|
Не работает функция по кнопке
Всем привет.:) Помогите разобраться, почему у меня не работает цикл в функции start:
function start(data) { 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>'; } break; } } $(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 = ''; if(fieldsCount) { row = '<form>'; start; row += '<button onclick="return false; start;">Далее</button></form>'; $('#feeds').html(row); } } }, "json"); return false; }); }); Функция start, прогоняющая цикл, вызывается при щелчке по элементу input:image. Но цикл не работает. Он использует полученные с сервера данные и потом работает с ними. Но как передать в вызываемую функцию эти данные? Вроде же указал: function start(data). Мне нужно, чтобы он выполнил этот цикл, а потом при нажатии по кнопке "Далее", которая создается в функции метода $.post, прогнал этот цикл еще раз. |
Вообщем не стал я выносить функцию start отдельно, а оставил ее внутри функции(function(data){...}) метода $.post. Там же ее определяю, там же и вызываю, передавая в качестве аргумента data:
$(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 = ''; if(fieldsCount) { row = '<form>'; function go(data) { //определяю функцию alert("Ok!"); 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>'; } break; } } go(data); //вызываю функцию, передавая в параметре 'data', так как цикл использует данные с сервера row += '<button onclick="return false; go(data);">Далее</button></form>'; $('#feeds').html(row); } } }, "json"); return false; }); }); Теперь цикл выполняется, но после того как я нажимаю кнопку "Далее", функция больше не работает. Почему так? |
если Вы пишите onclick="return false; go(data); то до go(data) дело не дойдет надо просто onclick="go(data)"
Но тут у Вас еще и go и data не определены надо их гдето запоминать |
Кажется начинаю понимать... Когда нажимаю кнопку 'Далее', происходит вызов функции go с параметром data. Но он не знает откуда взять этот параметр, так как он находится в функции метода $.post. То есть извне эту функцию вызвать нельзя, только из тела функции метода $.post. Как же тогда быть? Может данные с сервера куда-то отдельно сохранять, чтобы их можно было использовать не только в теле этой функции?:-?
|
Цитата:
|
Цитата:
|
Цитата:
|
Если выношу функцию отдельно, то не передается параметр data. Почему так?
|
Цитата:
там ошибка написано row = '<form>'; start; надо start(data) ну и гдето data запоминать и все нормально будет return false надо убрать-для чего он Вам не понял |
Цитата:
|
Часовой пояс GMT +3, время: 15:39. |
|