2014-01-12 6 views
2

У меня есть кнопка, которая вызывает функцию в javascript. В свою очередь, javascript запускает два последовательных вызова ajax. После того, как первый заканчивается, он выполняет некоторую дополнительную работу, затем запускает второй вызов ajax.Кнопка не работает после второго щелчка

Кнопка работает при первом нажатии. Однако, когда я хочу, чтобы нажать ее снова следующее сообщение об ошибке всплывает ...

Uncaught TypeError: object is not a function 

Это по отношению к моей функции, которая в настоящее время называется «OnClick» от кнопки.

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

Вот мои Ajax звонки в случае, если вы заинтересованы ...

var $response = $.ajax({ 
    url: $abs_filename, 
    type: 'HEAD', 
    async: false, 
    success: function() { 
     console.log('done'); 
    } 
}).status; 
($response != "200") ? $exist = false : $exist = true; 

.... много дополнительного кода здесь ....

var response = $.ajax({ 
    type: 'POST', 
    url: '/SERT/includes/file_operations.php',//url of receiver file on server 
    data: {saves: $save_data}, //your data 
    dataType: 'text', //text... 
    success: function(res) { 
     alert(res); 
    }, 
    async: false 
}).status; 

EDIT: Мои функция вызывается

<input type="button" .... onclick="save_session()"> 
+0

Я читал другие сообщения на форуме в аналогичной ситуации, но они, похоже, не относятся к моей проблеме ... Кроме того, я действительно пытался их решить, и они не решили проблему. – harmonickey

+1

Пожалуйста, разместите привязку слушателя 'click' –

+4

Я перестал читать о времени, когда увидел' ($ response! = "200")? $ exist = false: $ exist = true; '. – cHao

ответ

0

Вы действительно не показали код, вызывающий ошибку.

Однако ...

Не делайте этого; он не делает то, что, по вашему мнению, делает.

($response != "200") ? $exist = false : $exist = true; 

ли это:

$exist = $response == "200"; 

И только DO NOT использовать синхронные XHR.

+1

Похоже, что он должен быть равен, а не равно. : P – cHao

+0

да, только что заметил. :-) –

0

я был в состоянии понять это ...

Так что я имел JQuery добавить операция происходит внутри функции save_session(). Эта операция была такой ...

$bottom_section.append('<input type="hidden" name="save_session" value="' + $total + ' ' + $paragraph + '">'); 

Когда я это понял, все это работало должным образом. Я предполагаю, что, назвав ввод «save_session», испорченный с определением функции save_session() в памяти. Теперь не было конфликта определений, тогда все было в порядке.

Смежные вопросы