2014-01-12 2 views
2

자바 스크립트에서 함수를 호출하는 버튼이 있습니다. javascript는 두 번 연속 ajax 호출을 실행합니다. 첫 번째 작업이 끝나면 추가 작업을 수행 한 다음 두 번째 ajax 호출을 실행합니다.두 번째 클릭 후 버튼이 작동하지 않습니다.

버튼은 처음 클릭 할 때 작동합니다. 나는 그것을 클릭 할 때, 다시 다음과 같은 오류가

Uncaught TypeError: object is not a function 

그것은 버튼에서 '온 클릭'호출되고 제 기능을 참조입니다 ... 나타납니다.

나는 아약스에 꽤 새로 왔지만, 이런 일이 있어서는 안된다. 다른 버튼은 잘 작동하고 있으며, 모두 동일한 스크립트의 함수를 호출합니다. 그것은 단지이 하나의 기능인 것 같습니다. 나는 거기에 세미콜론이 없거나 뭔가있을 것으로 예상 했었지만 처음에는 제대로 작동하지 않을 것입니다 ... 또한 함수를 디버깅하고 바닥에 닿았 기 때문에 함수가 실행을 마쳤습니다.

여기 경우 당신이 관심이 내 아약스 호출은 ...입니다

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; 

편집 추가 코드를 많이 : 내 함수는

에 의해 호출됩니다.
<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"의 이름을 지정하는 것입니다. 이제는 정의 충돌이 없었습니다. 그렇다면 괜찮습니다.

관련 문제