javascript-clearTimeout和clearInterval在移动设备上不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-clearTimeout和clearInterval在移动设备上不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1902字,纯文字阅读大概需要3分钟。
内容图文
![javascript-clearTimeout和clearInterval在移动设备上不起作用](/upload/InfoBanner/zyjiaocheng/682/9af701e3539c412fb0f23a7bfef34b75.jpg)
我在移动设备(Android和iOS,手机和平板电脑)上无法清除标准javascript计时器时遇到问题.
我的页面包含2个按钮,一个播放/暂停切换按钮和一个停止按钮(两个FontAwesome图标),其简单的HTML格式为:
<span class="fa fa-pause control-button" id="pause-button"></span>
<span class="fa fa-stop control-button" id="stop-button"></span>
该间隔通过以下功能启动:
var interval = function() {
$('.control-button').fadeIn(300);
//initiate the interval
infiniteInterval = window.setInterval(Tiles.infiniteTick, speed);
};
在较早的函数中定义速度的位置(默认为300). infiniteTick是一个非常简单的函数,可以正常工作.我在这里没有解释它,因为它需要对整个程序进行解释,但是如果需要,我可以提供代码.
播放和暂停切换如下:
$('body').on('click touchstart', '#pause-button', function() {
if ($(this).hasClass('fa-pause')) {
window.clearInterval(infiniteInterval);
$(this).removeClass('fa-pause');
$(this).addClass('fa-play');
} else {
infiniteInterval = window.setInterval(Tiles.infiniteTick, speed);
$(this).removeClass('fa-play');
$(this).addClass('fa-pause');
}
});
最后,间隔以此终止(为简单起见,删除了一些纯粹的美学附加功能)
$('body').on('click touchstart', '#stop-button', function() {
window.clearInterval(infiniteInterval);
$('.control-button').fadeOut(300);
});
通过研究,我最初认为这是由于点击事件未正确注册所致,但是正如您所看到的,我已经为所有点击事件添加了touchstart,这没有什么区别.在所有台式机浏览器上都可以正常工作.
非常感谢您的帮助,我们很乐意回答任何其他问题.
谢谢,
本
解决方法:
我已经解决了这个问题,事实证明它是双重的.
首先,点击事件触发了两次.使用以下SO问题已解决此问题:jquery mobile click event fires twice
其次,我没有正确清除间隔.
用@MjrKusanagi的评论编辑
在每个setInterval()调用之前对clearInterval()的简单调用已解决了该问题,请确保在重新开始之前始终重置间隔.
原始的粗略解决方法:
我打过电话
infiniteInterval = null;
在每次clearInterval()调用之后,以及将setInterval()调用包装为
if (infiniteInterval === null)
感谢所有发表评论的人,希望这会在某个时候对某人有所帮助:)
内容总结
以上是互联网集市为您收集整理的javascript-clearTimeout和clearInterval在移动设备上不起作用全部内容,希望文章能够帮你解决javascript-clearTimeout和clearInterval在移动设备上不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。