繁体   English   中英

在javascript中仅调用一次js函数

[英]Call js function only once in javascript

我创建了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);
      }
   });
} 

我怎样才能做到这一点 ? 在此先感谢您,目前它正在向我展示无限循环。

使用标志变量

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

view(str, 0);

您可以将布尔值作为参数传递,以确定该函数是否应再次调用自身:

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调用自身,不会再次执行。

您正在寻找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);
        }
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM