单击后将外部数据加载到div中 - 一次

时间:2016-01-08 09:40:28

标签: javascript jquery html ajax

点击仅限一次后,我想将外部数据加载到div中1秒钟。

我有我的代码。它可以工作,但是当点击按钮的id时。循环开始像永恒。数据不断发送。单击一个按钮后我只想要一次。

这是我的代码。

$(".log_bak").load('inc/log_bak.php'); 
$("#log_bak_btn").click(function(){
            setInterval(function(){
          $.ajax({    //create an ajax request to load_page.php
            type: "POST",
            url: "inc/log_bak.php",             
            dataType: "html",   //expect html to be returned                
            success: function(response){                    
                $(".log_bak").html(response); 
            }
        });//ajax
    }, 10000);
});//click

2 个答案:

答案 0 :(得分:2)

而不是setInterval使用setTimeout,setInterval()方法将继续调用函数,直到调用clearInterval()或窗口关闭。而setTimeout()方法在指定的毫秒数后调用函数或计算表达式,并且只执行一次。

并使用$("#log_bak_btn").off('click');删除点击事件。

$("#log_bak_btn").click(function() {

  $("#log_bak_btn").off('click');// Remove click event

  setTimeout(function() {
    $.ajax({ 
      type: "POST",
      url: "inc/log_bak.php",
      dataType: "html",          
      success: function(response) {
        $(".log_bak").html(response);
      }
    }); 
  }, 10000);
}); 

答案 1 :(得分:1)

使用on的{​​{1}}和off方法。 jQuery用于on小鸡活动,attach将从元素中移除off

修改:您可以使用event获取.load容器中的html已解析数据。 .log_bak =>将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。



.one()