如何停止机场jQuery插件

时间:2011-12-05 16:33:49

标签: jquery

在解读文本之后,有人知道如何阻止这个插件吗?我喜欢动画,但我希望它停止而不是重复。这是一个链接http://www.caitmizzi.com/Untitled-1.html

这是JQuery

    (function($){ 
     $.fn.extend({  
         airport: function(array) {

            var self = $(this);
            var chars = ['a','b','c','d','e','f','g',' ','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','-'];
            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){
                if(c >= array.length)
                    setTimeout(function() { testChar(0,0,0,0); }, 1000);                
                else if(d >= longest)
                    setTimeout(function() { testChar(0,0,c+1,0); }, 1000);
                else {
                    $(self).find('.c'+a).html((chars[b]==" ")?"&nbsp;":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);
                    }, 20);
                }
            }

            testChar(0,0,0,0);
        } 
    }); 
})(jQuery);

这是功能

$(document).ready(function(){               
                $('#Entry').airport(['caitmizzi']);
            }); 

2 个答案:

答案 0 :(得分:2)

改变这个:

if(c >= array.length)
    setTimeout(function() { testChar(0,0,0,0); }, 1000);                
else if(d >= longest)
     setTimeout(function() { testChar(0,0,c+1,0); }, 1000);
else

要:

if(c >= array.length || d >= longest){
}  
else

现场演示:http://jsfiddle.net/VPWyQ/

答案 1 :(得分:0)

有一个选项:<script type="text/javascript"> var thumb = document.getElementsByClassName('thumb'); if (thumb.length < 4) { } </script>

默认值:true 选择是在数组值的末尾停止还是继续循环。

来源:http://seancoker.com/projects/airport/