setInterval函数在我的jsp页面中不起作用,下面是我的代码: -
<script>
$(document).ready(function(){
$('form[name="lgform"]').submit(function(evnt){
evnt.preventDefault();
try{
mapPlotVar.clearInterval();
}
catch(e)
{
}
mapPlotVar=setInterval($("#btn_login").click(function(){console.log("update");},20000));
});
$("#btn_login").click(function(){
alert("hi");
});
});
</script>
<body>
<form name="lgform">
<div>
<table id="table" >
<tr>
<td width="35px"><input id="mob" type="text" name="mob_nu" placeholder="1234567890" maxlength="10"></td>
<td width="100px"><input type="button" name="login_btn" id="btn_login" value="Login"></td>
<td width="100px"><label for="Login" style="color: red" id="login_val"></label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
点击&#34; btn_login&#34;一旦我希望每20秒后调用一次该功能,以便我收到警告信息&#34;嗨&#34;每隔20秒,但是&#34;嗨&#34;只显示一次,setInterval函数不起作用。我的代码出了什么问题?任何一段代码都表示赞赏。
我尝试以不同的方式在这里设置Interval,因为我希望在我第一次点击之后调用该函数并在每20秒后继续调用它如果我们将set interval函数放在我们调用的函数中它就不会工作按钮按常规方式点击。 提前致谢
答案 0 :(得分:2)
xtabs(cnt~Name+type, df)
以上内容将调用 with(df, tapply(cnt, list(Name, type), FUN=I))
一次并将其返回值(一个jQuery对象)传递给setInterval($("#btn_login").click(function(){console.log("update");},20000));
,但setInterval需要一个可调用函数作为其第一个参数。
通过包装到匿名函数来实现它的正确方法:
jQuery.click
但是这仍然没有多大意义,因为这样一个新的点击事件处理程序将每20秒添加(但不是执行)到元素。
答案 1 :(得分:1)
您的代码有四个基本问题:
setInterval
,而不是相反。setInterval
。您需要丢弃大部分代码并重新开始。
var interval;
function run_on_interval_when_button_is_clicked(){
alert("hi!");
}
function run_when_button_is_clicked(event) {
event.preventDefault();
interval = setInterval(
run_on_interval_when_button_is_clicked,
20000
);
}
$(document).ready(function(){
$("#btn_login").on('click', run_when_button_is_clicked);
});
这些都与JSP无关。这是服务器端代码。
答案 2 :(得分:1)
您的代码存在很多问题。忽略其他问题,如果要在按钮单击时为函数设置20秒间隔,则需要启动单击处理程序内部的间隔。
$("#btn_login").click(function(){
setInterval( function () {
alert('hi');
}, 20000);
});
当然,这将在每次点击按钮时发生。解决问题的一种方法是使用.one('click', function() { setInterval...})
而不是.click()
,因为它只能在第一次点击时使用。但由于看起来你也希望取消这段时间,你也需要照顾它。
编辑:
var interval;
$("#btn_login").one( 'click', function() {
function run () {alert('hi');}
run();
interval = setInterval( run, 20000 );
});
// you can now cancel this interval somewhere else
function someCallback () {
if ( interval )
clearInterval(interval);
}
答案 3 :(得分:0)
var interval;
$('#btn').on('click',function(){
if(typeof (interval) === 'undefined') {
interval = setInterval(function(){
alert('hi');
},20000);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Click</button>
&#13;
答案 4 :(得分:-1)
$('#btn_login').on('click', function(){
setInterval(function(){ console.log("update"); }, 20000);
});