jQuery删除随机数组函数成功

标签 jquery

我有这段脚本,但我无法弄清楚如何成功删除随机函数,以便数组一次流过每个数组项,而不是随机显示每个项。

$(window).ready(function() {
    var helloArray = ["hello", "bonjour", "hola", "konnichiwa", "hujambo", "czesc", "hei", "ciao"];
    $('#page_title').loadText( helloArray, 5000 ); // ( array, interval )
});

$.fn.loadText = function( textArray, interval ) {
    return this.each( function() {
        var obj = $(this);
        obj.fadeOut( 'slow', function() { 
            obj.empty().html( random_array( textArray ) );    
            obj.fadeIn( 'fast' );
        });
        timeOut = setTimeout( function(){
            obj.loadText( textArray, interval )
        }, interval );
        $("#text-reload").click( function(){ 
            if( !obj.is(':animated') ) {
                clearTimeout( timeOut );
                // animation check prevents "too much recursion" error in jQuery
                obj.loadText( textArray, interval );
            } 
        });
    });
}

//public function
function random_array( aArray ) {
    var rand = Math.floor( Math.random() * aArray.length + aArray.length );
    console.log(randArray);
    var randArray = aArray[ rand - aArray.length ];
    return randArray;
}

最佳答案

尝试

$(document).ready(function() {
    var helloArray = ["hello", "bonjour", "hola", "konnichiwa", "hujambo",
            "cześć", "hei", "ciao"];
    $('#page_title').loadText(helloArray, 1000); // ( array, interval )
    document.title = $('#page_title').text();
});
// custom jquery plugin loadText()
$.fn.loadText = function(textArray, interval) {
    return this.each(function() {
        var obj = $(this), intervalId, counter = 0;

        function change() {
            obj.fadeOut('slow', function() {
                var text = textArray[counter++];
                obj.html(text).fadeIn('fast');
                document.title = text;

                counter = counter >= textArray.length ? 0 : counter;
            });
        }

        function start() {
            intervalId = setInterval(change, interval);
        };

        start();

        $("#text-reload").click(function() {
            if (!obj.is(':animated')) {
                clearInterval(intervalId);
                start();
            }
        });
    });
}

演示:Fiddle

关于jQuery删除随机数组函数成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061093/

相关文章:

jquery - 如何附加到所有 Jquery.UI.dialog 打开事件以在打开时动态调整对话框大小?

javascript - JavaScript 对象中的 JQuery 事件

javascript - 使用 Javascript 从字符串中删除数字

javascript - jQuery:切换任何下拉菜单时切换其他下拉菜单

javascript - jstree 用一些 html 数据创建节点

javascript - 为什么当我放置更多 DIV 时我的图像会向下移动?

javascript - jQuery 'combo button' 单击处理问题

javascript - 使用ajax提交multipart/form-data时,文件为空

jquery - 通过文本将 CSS 类添加到生成的 <a> 和 <span> 标记

jquery :last missing multiple classes