如何每隔5秒运行一次具有差异值的功能?

时间:2017-07-26 06:37:01

标签: javascript jquery

我尝试在我的页面上运行通知消息,但我只是想知道是否有任何简单的方法来编写代码?

<script>
    window.setTimeout(function(){
            iziToast.show({
                    hyperlink: '?id=002',
                    title: 'Title 2',
                    message: 'message 2',
                    image: 'img/2.jpg',
                    timeout: 7500,
                });
    }, 5000);

    window.setTimeout(function(){
            iziToast.show({
                    hyperlink: '?id=003',
                    title: 'Title 3',
                    message: 'message 3',
                    image: 'img/3.jpg',
                    timeout: 7500,
                });
    }, 17500);

    window.setTimeout(function(){
            iziToast.show({
                    hyperlink: '?id=004',
                    title: 'Title 4',
                    message: 'message 4',
                    image: 'img/4.jpg',
                    timeout: 7500,
                });
    }, 30000);

    window.setTimeout(function(){
            iziToast.show({
                    hyperlink: '?id=005',
                    title: 'Title 5',
                    message: 'message 5',
                    image: 'img/5.jpg',
                    timeout: 7500,
                });
    }, 42500);


    </script>

如何使用很简单的代码来运行这些功能?对不起,我是编程和自学者的新手。

4 个答案:

答案 0 :(得分:3)

我认为你需要这个

    var i = 0;
    var interval;

//taken from Ma Kobi answer

var options = [
{
    hyperlink: '?id=002',
    title: 'Title 2',
    message: 'message 2',
    image: 'img/2.jpg',
    timeout: 7500,
},
{
    hyperlink: '?id=003',
    title: 'Title 3',
    message: 'message 3',
    image: 'img/3.jpg',
    timeout: 7500,
},
{
    hyperlink: '?id=004',
    title: 'Title 4',
    message: 'message 4',
    image: 'img/4.jpg',
    timeout: 7500,
},
{
    hyperlink: '?id=005',
    title: 'Title 5',
    message: 'message 5',
    image: 'img/5.jpg',
    timeout: 7500,
}];

    //taken from Ma Kobi answer

    function myfunction() {
        interval= setInterval(function () {

            iziToast.show(options[i]);

            i++;

            if (i == 6) {
                i = 0;
                clearInterval(interval); 
            }

        }, 1000);
    }

答案 1 :(得分:2)

也许是这样:

var options = [
    {
        hyperlink: '?id=002',
        title: 'Title 2',
        message: 'message 2',
        image: 'img/2.jpg',
        timeout: 7500,
    },
    {
        hyperlink: '?id=003',
        title: 'Title 3',
        message: 'message 3',
        image: 'img/3.jpg',
        timeout: 7500,
    },
    {
        hyperlink: '?id=004',
        title: 'Title 4',
        message: 'message 4',
        image: 'img/4.jpg',
        timeout: 7500,
    },
    {
        hyperlink: '?id=005',
        title: 'Title 5',
        message: 'message 5',
        image: 'img/5.jpg',
        timeout: 7500,
    }
];

var timeout = [
    5000, 17500, 30000, 42500
];

for (var i = 0; i < options.length; i++) {
    window.setTimeout(function(){
        iziToast.show(options[i]);
    }, timeout[i]);
}

对于另一个toast,你可以在选项中添加一个条目,在超时数组中添加一个超时。

答案 2 :(得分:0)

如果你想在php中重复一个函数你可以使用循环。

    for (init counter; test counter; increment counter) {
           code to be executed;
    } 

如果你想在javascript中重复一个函数,你可以使用以下代码:

for (statement 1; statement 2; statement 3) {
    code block to be executed
}

如果要在指定时间内重复某个功能,可以使用以下代码:

setInterval(function(){ 
     foFuction()
},50000;

答案 3 :(得分:-1)

尝试window.setInterval();

前:

setInterval(function(){ 
    alert("Hello"); 
},12500);`

以上代码每12500ms运行一次。 尝试找出为每个时间间隔传递动态对象的方法。