1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $(document).ready( function () { $( '#foo' ).bind( 'click' , function () { doSomething(); }); }); var doSomething = function (){ $( '#foo' ).unbind( 'click' ); $.ajax({ type: "POST" , url: "some.aspx" }).done( function () { $( '#foo' ).bind( 'click' , function () { doSomething(); }); }); } |
위처럼 jQuery.ready()에 클릭이벤트를 바인드시켜두고, 한번 클릭시 unbind() 후 ajax 요청이 끝나면(done event) 다시 bind 시키는 방법이다.
jQuery.ajax 옵션에 async: false로 주는 방법도 있으나 이는 동기식 호출이라 서버에서 처리가 오래 걸릴 경우 좋지 않다.
[출처] 네이버 블로그 http://blog.naver.com/ponin/70155062648