在焦点事件上停止计时器
JavaScript - stop timer on focus event
我有一个脚本,每2秒改变文本框中的文本。我想让它停止(计时器),并在用户点击并聚焦于文本框时清除文本框。
var text = ["1", " 2", "3"];
var counter = 0;
var elem = document.getElementById("txt1");
setInterval(change, 2000);
function change() {
document.getElementById("txt1").value = text[counter]; //data is the element
counter++;
if(counter >= text.length) {
counter = 0;
}
}
更新您的输入类型,如
<input type="text" onfocus="myFunction()">
也更新
setInterval(change, 2000);
var tt=setInterval(change, 2000);
在脚本中添加myFunction
function myFunction(){
clearInterval(tt);
document.getElementById("txt1").value = "";
}
存储调用setInterval()
时的间隔id:
var interval = setInterval(change, 2000);
,然后在focus()
处理程序中取消它:
function stopit()
{
if (interval) {
clearInterval(interval);
interval = false;
elem.value = "";
}
}
if (elem.addEventListener) {
elem.addEventListener('focus', stopit, false);
} else if (elem.attachEvent) {
elem.attachEvent('onfocus', stopit);
}
请注意,stopit()
只清除间隔(和文本)一次——这样,如果用户键入某些内容,关注其他地方,然后重新关注,我们不会丢弃他们的输入。
示例:http://codepen.io/paulroub/pen/AtxEr
试试这个:
//设置时间间隔
interval_variable = setInterval(change, 2000);
//当你想停止执行"change"
clearInterval (interval_variable);
真正简单的解决方案是检查输入是否在函数内具有焦点,并且document.activeElement
保存焦点元素,因此只需将其与elem
进行比较并返回,如果它们是相同的,将会做到
var text = ["I want a smartphone with a big screen", "I don't want a smartphone made by a korean company", "I want a LED TV with high refresh rate"];
var counter = 0;
var elem = document.getElementById("txt1");
elem.addEventListener('focus', function() {this.value=''}, false);
setInterval(change, 2000);
function change() {
if (document.activeElement == elem) return;
elem.value = text[counter];
counter++;
if(counter >= text.length) { counter = 0; }
}
小提琴
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 计时器循环从不运行
- Progressbar计时器,仅在页面刷新时重新加载
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 当选项卡未处于焦点中时暂停 Javascript 计时器
- 在焦点事件上停止计时器
- 使用setTimout根据用户改变刷新计时器的问题's的焦点