在setTimeout中执行click功能

时间:2013-05-29 10:57:59

标签: jquery jquery-animate setinterval

我有以下功能在几个div之间制作动画:

   jQuery('.nav').click(
        function hideShow () { 
            var targ  = jQuery(this)[0].className.split(' ')[1];
            jQuery('.slide.' +targ).addClass('active').animate({opacity:1});
            jQuery('.slide:not(.active)').animate({opacity:0});

            if(jQuery('.slide').css('opacity') == 0) {
               jQuery('.slide').removeClass('active');
            }
        }
    );

我想使用以下命令自动运行:

setTimeout(function() {
    triggerClick('.nav', 0),
    hideShow();
}, 5000);

function triggerClick(selector, index) {
    var slideNav= jQuery(selector);
    var mod = index++ % slideNav.length;
    jQuery(slideNav[mod]).trigger('click');
    setTimeout(function() {
        triggerClick(selector, index);
    }, 5000);
}

基本上我想每隔5秒运行一次隐藏显示功能来重置我的滑块项目的不透明度,但我无法弄清楚我做错了什么?

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我通过首先删除点击功能中的活动来解决它:

   jQuery('.nav').click(
        function () { 
            var targ  = jQuery(this)[0].className.split(' ')[1];
            jQuery('.slide').removeClass('active');
            jQuery('.slide.' +targ).addClass('active').animate({opacity:1});
            jQuery('.slide:not(.active)').animate({opacity:0});

            if(jQuery('.slide').css('opacity') == 0) {
               jQuery('.slide').removeClass('active');
            }
        }
    );

更新了小提琴http://jsfiddle.net/vrFVu/2/