如何在jsfiddle中使用简单的jQuery幻灯片

d4so4syb  于 2023-01-16  发布在  jQuery
关注(0)|答案(2)|浏览(126)

使用http://jonraasch.com/blog/a-simple-jquery-slideshow中的代码,我创建了一个jsfiddle。
问题是幻灯片在jsfiddle中不起作用,所以我不能根据需要修改它
会有什么问题呢?
http://jsfiddle.net/UUKP4/8/
代码:

function slideSwitch() {
            var $active = $('#slideshow IMG.active');
        
            if ( $active.length == 0 ) $active = $('#slideshow IMG:last');
        
            // use this to pull the images in the order they appear in the markup
            var $next =  $active.next().length ? $active.next()
                : $('#slideshow IMG:first');
                    
            $active.addClass('last-active');
        
            $next.css({opacity: 0.0})
                .addClass('active')
                .animate({opacity: 1.0}, 1000, function() {
                    $active.removeClass('active last-active');
                });
        }
        
        $(function() {
            setInterval( "slideSwitch()", 5000 );
        });
        
        </script>
        
        <style type="text/css">
        
        /*** set the width and height to match your images **/
        
        #slideshow {
            position:relative;
            height:350px;
        }
        
        #slideshow IMG {
            position:absolute;
            top:0;
            left:0;
            z-index:8;
            opacity:0.0;
        }
        
        #slideshow IMG.active {
            z-index:10;
            opacity:1.0;
        }
        
        #slideshow IMG.last-active {
            z-index:9;
        }
        
        </style>
        
                
        <div id="slideshow">
          <img src="http://jonraasch.com/img/slideshow/simple-jquery-slideshow.png" alt="Slideshow Image 1" class="active" />
          <img src="http://jonraasch.com/img/slideshow/mini-golf-ball.jpg" alt="Slideshow Image 2" />
          <img src="http://jonraasch.com/img/slideshow/jon-raasch.jpg" alt="Slideshow Image 3" />
          <img src="http://jonraasch.com/img/slideshow/ear-cleaning.jpg" alt="Slideshow Image 4" />
    </div>
y1aodyip

y1aodyip1#

代码中出现问题。发送到setInterval的处理程序中有多余的括号。
当把句柄发送给函数时,我们不写括号,如果写了括号,实际发生的是函数(slideSwitch())被调用,它的返回值被发送给函数(setInterval)。

$(function () {
    setInterval(slideSwitch, 5000); // Not slideSwitch()
});

现在起作用了
jsFiddle Demo

mccptt67

mccptt672#

删除setInterval中的括号:

setInterval(slideSwitch, 5000);

setInterval的第一个参数查找每毫秒运行一次的函数,而不是引用该函数,在示例中,实际上是在第一个参数中调用该函数(当脚本加载时也是如此)我可以想象您的函数返回null,因此不会出现JavaScript错误,而是简单地每5000ms运行null

相关问题