0
我使用jQuery機場下列方式:jQuery的機場將無限期運行,
$('#basketTotal').airport([s]);
$('#basketTotal').html(s);
這裏的機場功能:
(function($){
$.fn.extend({
airport: function(array) {
var self = $(this);
var chars = ['1','2','3','4','5','6','7','8','9','0','.','£'];
var longest = 0;
var items = items2 = array.length;
function pad(a,b) { return a + new Array(b - a.length + 1).join(' '); }
$(this).empty();
while(items--)
if(array[items].length > longest) longest = array[items].length;
while(items2--)
array[items2] = pad(array[items2],longest);
spans = longest;
while(spans--) {
$(this).prepend("<span class='c" + spans + "'></span>");
}
function testChar(a,b,c,d){
$(self).find('.c'+a).html((chars[b]==" ")?" ":chars[b]);
setTimeout(function() {
if(b > chars.length)
testChar(a+1,0,c,d+1);
else if(chars[b] != array[c].substring(d,d+1).toLowerCase())
testChar(a,b+1,c,d);
else
testChar(a+1,0,c,d+1);
}, 15);
}
testChar(0,0,0,0);
}
});
})(jQuery);
我永遠只能將一個字符串傳遞到機場函數(不是一個字符串數組)。機場無限期地運行並不停止,但我需要停下來並在完成時執行$('#basketTotal').html(s);
。
當完成動畫的一次迭代時,如何使函數停止?
您好,感謝答案。知道要停止多少次迭代是非常困難的。這裏是一個JSFiddle:http://jsfiddle.net/3rPJ4/1/ 它應該停止後它更新到9.99英鎊,如果這樣做更有意義!我只希望它一次運行動畫,然後停下來。 – 2012-04-17 16:40:27
我添加了一種方法來終止循環。如果沒有更多的關於你的算法的描述,我不知道這是否是最早可以終止循環,但是當你現在正在尋找比你更多的跨度時,它會阻止它。 – jfriend00 2012-04-17 16:59:51
非常感謝,效果很好!我同意這個功能是模糊的,這是我在這裏發現的一個小功能:http://unwrongest.com/projects/airport/ – 2012-04-17 17:24:05