我有一个按钮(标识为ID)设置为显示:无。单击Vimeo“播放”按钮后,此按钮会延迟10秒出现。
单击视频中的“暂停”后是否可以暂停延迟,因此计时器停止并通过再次单击“播放”再次启动计时器?
这是我到目前为止所拥有的(另请参见此fiddle):
import React from 'react';
import {connect} from 'react-redux';
import * as selectors from './selectors';
const Component = ({message}) => (
<div>
{message}
</div>
);
const mapStateToProps = (state, props) => ({
message: selectors.message(state, props),
});
export default connect(mapStateToProps)(Component);
答案 0 :(得分:2)
您不能暂停jQuery .delay()
。但是,如果您可以间隔一定时间手动执行操作,则可以:
//prep
let
int,
secs = 10,
elapsed = 0
;
//on play, start/resume interval timer - when we get to 10, show button
player.on('play', () => {
int = setInterval(() => {
elapsed++;
if (elapsed == secs) {
jQuery('#proceed').show();
clearInterval(int);
}
}, 1000);
});
//pause interval timer on pause
player.on('pause', () => {
clearInterval(int);
});
如果您重新启动视频或将播放头移回0秒,则可能要完全重设间隔。
答案 1 :(得分:0)
不。
.delay()方法最适合在排队的jQuery之间进行延迟 效果。因为它是有限的,例如,它没有提供一种方法来 消除延迟-.delay()不能替代JavaScript的本机 setTimeout函数,可能更适合某些用途 案例。