2013-03-23 1 views
1

에서 내가 JS 기능을 만들어 지금은 JS 기능은 한 번 자신을 호출하는 것을 원하는, 내 코드전화 JS 기능은 한 번 자바 스크립트

function view(str){ 

    $.ajax({ 
     type: "POST", 
     url: '<?php echo base_url()?>index.php/main/'+str+'/', 
     success: function(output_string){ 
     //i want to call function from here only once like view(str); 
     } 
    }); 
} 

입니다. 어떻게 할 수 있습니까? 미리 감사드립니다, 현재 그것은 나를 보여주고 있습니다.

+0

내가 좋아하는 앵커 태그의 클릭에 그 함수를 호출하고 코드가 –

답변

8

사용 플래그 변수

var myflag = false; 
function view(str) { 
    $.ajax({ 
       type : "POST", 
       url : '<?php echo base_url()?>index.php/main/' + str + '/', 

       success : function(output_string) { 
        if (!myflag) { 
         view(str); 
        } 
        myflag = true; 
       } 
      }); 
} 
:

function view(str, count) { 
    if (count > 0) { 
    return; 
    } 

    $.ajax({ 
    type: "POST", 
    url: '<?php echo base_url()?>index.php/main/'+str+'/', 

    success: function(output_string) { 
     view(count + 1); 
     // i want to call function from here only once like view(str); 
    } 
    }); 
} 

은 그럼 당신은 처음에이 같은 view를 부를 것이다

+0

감사합니다 , 귀하의 투표에 의견을 말하십시오. –

1

개수를 추적 함수에 매개 변수를 추가하는 시도 :

view(str, 0); 
1

bool을 함수로 다시 호출해야하는지 여부를 매개 변수로 전달할 수 있습니다.

function view(str, shouldCallSelf){ 

    $.ajax({ 
     type: "POST", 
     url: '<?php echo base_url()?>index.php/main/'+str+'/', 
     success: function(output_string){ 
     if (shouldCallSelf) 
      view(output_string, false) 
     } 
    }); 
} 

처음으로 true로 호출해야합니다. 그런 다음 두 번째로 false로 자체를 호출하고 다시 실행하지 않습니다.

1

당신은 jquery one을 찾고 있습니다. http://api.jquery.com/one/

바이올린 http://jsfiddle.net/XKYeg/6/

<a href='#' id='lnk'>test</a> 

$('#lnk').one('click', function view(str) { 
    $.ajax({ 
     type: "POST", 
     url: '<?php echo base_url()?>index.php/main/' + str + '/', 

     success: function (output_string) { 
      i want to call 

      function from here only once like view(str); 
     } 
    }); 
}); 
+0

@Downvoter 작동 –