点击仅限一次后,我想将外部数据加载到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
答案 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()