如何在javascript中设置不断递增的计数器,当计数器>一定的价值
How to set constantly incrementing counter in javascript , to perform another operation when counter > certain value?
我是jquery和javascript的新手。我需要在javascript中设置一个变量,该变量每秒递增1。为此,我做了以下事情:
function run(){
timer++;
}// run ends here
setInterval(run,1000);
一旦变量值>5,我想启用代码,这样,每当有人在html页面中的iframe上悬停时,ajax请求就会完成。
在发出ajax请求后,我想重置timer=0。
if(timer>5){
$("iframe").hover(function(){
$.ajax({
url: 'http://localhost/test.html',
cache: false,
data: 'html',
success: function(data,status) {
}
});
});
timer=0;
}
这个过程应该再次重复,计数器应该再次从0开始到5,ajax请求功能应该再次激活。
以下是一个地方的完整代码:
<script>
var i = 0;
var timer=0;
function run(){
timer++;
}// run ends here
setInterval(run,1000);
if(timer>5){
$("iframe").hover(function(){
$.ajax({
url: 'http://localhost/test.html',
cache: false,
data: 'html',
success: function(data,status) {
}
});
});
timer=0;
}
</script>
我试了很多,在谷歌上搜索了很多,但都没能找到解决方案。
试试这个:
var timer=0;
function run(){
timer++;
if(timer == 5){
$("iframe").on('mouseenter', function(){
$.ajax({
url: 'http://localhost/test.html',
cache: false,
data: 'html',
success: function(data,status) {
timer=0;
$('iframe').off('mouseenter')
}
});
});
}
}// run ends here
setInterval(run,1000);
如果您的iframe上已经有mouseenter事件,那么执行.off('mouseenter')
将删除这些绑定。
正如Ian所建议的,您可以命名您的事件,从而可以解除特定绑定的绑定。
要做到这一点,只需在绑定/解除绑定时使用一个点:
$("iframe").on('mouseenter.timer',...)
$('iframe').off('mouseenter.timer')
使用函数记忆来避免全局"计时器"变量:
function run(){
run.timer = run.timer || 0;
return run.timer++;
} // run ends here
setInterval(run,1000);
要根据计时器采取相应的操作,请从run()
运行处理,例如:
function run(){
run.timer = run.timer || 0;
run.timer = handleTimer(run.timer++);
} // run ends here
setInterval(run,1000);
function handleTimer(timer) {
if(timer > 5){
$("iframe").hover(function(){
$.ajax({
url: 'http://localhost/test.html',
cache: false,
data: 'html',
success: function(data,status) {
}
});
// And disable hover handler once executed
$("iframe").unbind("mouseenter mouseleave");
});
return 0;
}
return timer; // continue timer chaining
}
将if
语句放在run()
中,并将timer=0
移到AJAX调用的success
函数中。
function run() {
timer ++;
if(timer == 5) {
//Your ajax here
}
}
AJAX success
应该看起来像success: function(data, status) { timer = 0;}
。在AJAX成功的情况下,您将希望unbind
您的iframe
悬停,然后在timer > 5
时重新绑定,以便在计时器小于5时删除悬停功能。
相关文章:
- 在<页眉>标签
- JQuery使计数器每次更改时都会增加
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Javascript计数器变量未显示正确的值
- Ajax文件加载和<输入>文件加载
- 为什么要使用0>javascript中的0
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 将所选类别循环到ul>李用加载更多按钮
- 如何更改<选择>使用angularJS从控制器获得的值
- 多重<text区域>具有字符计数器+行限制器的字段
- 如何将图片添加到点击计数器文本显示<图像><点击量>
- 如何在javascript中设置不断递增的计数器,当计数器>一定的价值