如何暂停.delay()方法
How can I pause the .delay() method?
我正在尝试为延迟函数创建切换效果
点击功能:
$('#swap').on('click', function(e){
//code bellow $('#swap').delay(1000).attr('src') == 'Play.png'
if ($(this).attr('src') == 'Play.png') {
$('#swap').attr('src') == 'Pause.png'
}
else{
$('#swap').attr('src') == 'Play.png'
}
点击后,另一个功能开始延迟:
$('#swap').delay(1000).attr('src') == 'Play.png'
之后,如果您再次单击#swap
,则延迟将暂停(不停止),如果再次单击,则延迟将继续。这可能吗?
因为目前,如果点击,延迟会从头开始吗?
.delay()
设置计时器以延迟队列中后续项目的执行。
(例如:fadeIn()、fadeOut()、.slideUp()、slideDown()等动画…)
文档:http://api.jquery.com/delay/
在您的情况下,尝试使用:
setTimeout(function(){
// Do something
},1000);
如果我理解,你是说这样的事情
var clicked;
$('#swap').on('click', function(e) {
if(!clicked) {
setTimeout(function(){
$(this).attr('src','Play.png');
},1000);
clicked = true;
} else {
$(this).attr('src','Pause.png');
clicked = false;
}
});
或者使用切换事件
$('#swap').toggle(function() {
setTimeout(function(){
$(this).attr('src','Play.png');
},1000);
},function() {
$(this).attr('src','Pause.png');
});
文档:http://api.jquery.com/toggle-event/
更新:
$('#swap').on('click',function() {
var $this = $(this);
var src = $this.attr('src');
if (src == 'Play.png') {
setTimeout(function(){
$this.attr('src','Pause.png');
},1000);
} else {
$this.attr('src','Play.png');
}
});
使用clearTimeout()更新:
var swapTimer;
$('#swap').on('click', function () {
var $this = $(this);
var src = $this.attr('src');
if (src == 'Play.png') {
swapTimer = setTimeout(function () {
$this.attr('src', 'Pause.png');
}, 1000);
} else {
clearTimeout(swapTimer);
$this.attr('src', 'Play.png');
}
});
演示:http://jsfiddle.net/qnDh8/(播放.png=红色,暂停.png=黄色)
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 什么是“;右“;使用addClass/delay/removeClass的方法
- 如何暂停.delay()方法
- 茉莉花时钟滴答;火狐:无法触发Q.delay方法
- jQuery's .delay方法在底层是如何工作的?