如何在我的网页上只运行一次间隔?(jquery)
How can I run the interval on my webpage only once? (jquery)
我有一个网页:
<textarea class="form-control" rows="5" id="textArea" name='textArea' maxlength="250" style="resize:none" placeholder=""></textarea>
<small>
<span id="counter"></span>
</small>
和一个绑定到这个的jquery:
$('#textArea').bind('input propertychange', function () {
display30Seconds();
});
function display30Seconds() {
var validTime = 30000;
counterInterval = setInterval(function () {
$('#counter').html(validTime / 1000);
validTime = validTime - 1000;
}, 1000);
}
我想要一个简单的效果——当用户开始在文本区域输入时,他看到计数器从30下降到0。当计数器降到零时,我想显示一个警报并禁用文本区域。到目前为止,它运行得很糟糕,因为每次用户在文本区域键入任何内容时,我们都会启动另一个计数器,它们就会重叠。我该怎么修?http://jsfiddle.net/jf4ea4nx/
我想要一个简单的效果——当用户开始在文本区域输入时,他看到计数器从30下降到0。当计数器降到零时,我想显示一个警报并禁用文本区域。
检查下方代码中的注释
演示
$('#textArea').on('input propertychange', display30Seconds);
// Define the variable
var interval;
function display30Seconds() {
var validTime = 3000; // Changed for Demo purpose
// If timer not already started
if (!interval) {
// Save the interval id
interval = setInterval(function() {
$('#counter').html(validTime / 1000);
validTime = validTime - 1000;
// When timer reaches zero
if (validTime < 0) {
// Clear the interval
clearInterval(interval);
alert('Time Up!');
// Disable textarea
$('#textArea').prop('disabled', true);
}
}, 1000);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<textarea class="form-control" rows="5" id="textArea" name='textArea' maxlength="250" style="resize:none" placeholder=""></textarea>
<small><span id="counter"></span></small>
相关文章:
- 每次鼠标悬停触发一次 jquery 效果
- 只执行一次jquery animate
- 调用一次jQuery函数
- 如何在上一次 JQuery 调用后访问 DOM
- 为什么我的Javascript全局变量只更新一次?jQuery最后一个子选择器错误
- 如何从Angular指令运行一次jQuery插件
- 如何在一个页面、每个会话中只触发一次jquery函数
- 鼠标悬停只工作一次?JQuery
- 每15秒运行一次jquery函数
- PHP重定向破坏ajax,所以强制一次Jquery页面刷新
- 我们如何只加载一次jquery函数
- 每x秒调用一次jQuery函数(对象文字模式)
- 每次调用只切换一次jQuery动画
- 如何只执行一次Jquery代码?
- 检查iFrame是否加载.一次.Jquery
- 点击里面的点击功能导致警告信息显示不止一次- Jquery/Javascript
- 如何在滚动上只运行一次jQuery动画?
- 如何每n秒运行一次jQuery load()请求
- 每隔5秒在一个元素上重复运行一次jQuery.click事件
- 如何只执行一次Jquery代码