0
我創建了一個jQuery插件具有以下結構:clearTimeout在關閉
(function($){
var timer_handle, i = 5 ;
$.my_plugin = function(){
return{
// provide $.my_plugin.reset() public method to reset
reset : function(){ clearTimeout(timer_handle); }
}
}();
$.fn.my_plugin = function(){
// init codes ...
function tick(){
i -= 1;
console.log(i+'sec elapsed');
if(i == 0){
console.log('time over');
$.my_plugin.reset();
}
timer_handle = setTimeout(tick, 1000);
}
tick();
}
})(jQuery);
$('body').my_plugin();
當我在控制檯中看到,後0秒過去了,計數器仍在負運行, 即setTimeout的尚未清除。 正如我所研究的,公共方法 $ .my_plugin.reset();從外部調用清除計時器, 但在tick標記內調用$ .my_plugin.reset()不清除計時器。
什麼可能是這種情況下,解決方案?????
太感謝你了!你救了我的一天! – roxxypoxxy 2012-08-12 07:28:05