如何调用rendro/countdown插件的stop()等公共方法
解决rendro/countdown插件stop()方法调用问题
这个jQuery插件的实例对象会被存储在目标DOM元素的data属性中,你之前的调用方式都没拿到正确的实例,所以无法触发stop方法,正确操作如下:
正确调用stop()的方式
- 获取插件实例:初始化倒计时后,通过
$('.countdown').data('countdown')拿到插件的实例对象 - 调用stop方法:直接对实例调用
stop()即可
示例代码
修改你的初始化逻辑,方便后续调用
function Timer(minutes) { // 初始化倒计时 $('.countdown').countdown({ date: new Date().getTime() + (1000 * 60 * minutes - 1000), render: function(data) { $(this.el).text(this.leadingZeros(data.min) + ":" + this.leadingZeros(data.sec, 2)); } }); // 返回实例对象,方便后续操作 return $('.countdown').data('countdown'); } // 初始化并保存实例 var timerInstance = Timer(2); // 需要停止时调用 timerInstance.stop();
直接在任意位置停止(无需修改Timer函数)
如果不想修改原Timer函数,在需要停止倒计时的地方直接执行:
$('.countdown').data('countdown').stop();
补充说明
- 该插件的所有公共方法(比如
start()、stop()、toggle())都需要通过存储在DOM元素data中的实例对象调用 - 你的原代码里
render函数和countdown方法的闭合括号缺失,记得补全,否则初始化会失败
内容的提问来源于stack exchange,提问作者CharleyB0y
相关产品推荐
相关产品推荐

