1

这是我在这里的第一篇文章,所以我不确定我的帖子标题或这篇文章的其余部分是宽泛还是含糊。

这是我解决问题的第一站。但现在我被困住了。我设法从我在这个网站上找到的一些代码中组合了一个 jquery 图像幻灯片放映(不是插件)。我在这里和那里做了一些修改,并添加了几个输入字段。这是一个 jsfiddle http://jsfiddle.net/8BRzr/48/评论了我的问题。

我相信我的问题在于 jquery 代码的 setInterval 部分

$(function(){
    $('#addimage').click(function(){
    if($( "#addimagefield" ).val().trim().length !='' && $( "#image1" ).val().trim().length ==''){
        $( "#image1" ).val( $("#addimagefield").val().trim() );
        $( "#addimagefield" ).val( '' );
    } if($( "#addimagefield" ).val().trim().length !='' && $( "#image2" ).val().trim().length ==''){
        $( "#image2" ).val( $("#addimagefield").val().trim() );
        $( "#addimagefield" ).val( '' );
    } if($( "#addimagefield" ).val().trim().length !='' && $( "#image3" ).val().trim().length ==''){
        $( "#image3" ).val( $("#addimagefield").val().trim() );
        $( "#addimagefield" ).val( '' );
    } if($( "#addimagefield" ).val().trim().length !='' && $( "#image4" ).val().trim().length ==''){
        $( "#image4" ).val( $("#addimagefield").val().trim() );
        $( "#addimagefield" ).val( '' );
    } if($( "#addimagefield" ).val().trim().length !='' && $( "#image5" ).val().trim().length ==''){
        $( "#image5" ).val( $("#addimagefield").val().trim() );
        $( "#addimagefield" ).val( '' );
    }
    image1 = $('#image1').val();
    image2 = $('#image2').val();
    image3 = $('#image3').val();
    image4 = $('#image4').val();
    image5 = $('#image5').val();

var arr = [ image1,image2,image3,image4,image5 ];
var images = $.grep( arr, function( n, i ) {
  return n != '';
});
var cur_image = 0;
function changeBackground() {
    cur_image++;
    if ( cur_image >= images.length )
        cur_image = 0;

    // change images
    $( '.featuredImages' ).css({
        backgroundImage: 'url(' + images[ cur_image ] + ')'
    });
    $( '.featuredImages .slide' ).fadeIn( 2000, function(){
        $( this ).css({
            backgroundImage: 'url(' + images[ cur_image ] + ')'
        }).show();
    } );

};
setInterval( changeBackground, 6000 );
});
});

在搜索时,我遇到了 settimeout() 函数,这似乎是我需要的,但我不知道在哪里/如何实现它。

任何和所有的帮助表示赞赏,谢谢。

4

1 回答 1

0

问题是您已经changeBackground在单击事件处理程序中声明了该函数,因此它仅在该范围内可用。当您尝试在外部使用它时,它是未定义的。

将函数移出事件处理程序,并在该范围之外声明imageandcur_image变量,因为函数使用它们:

http://jsfiddle.net/8BRzr/49/

于 2013-10-12T19:53:58.360 回答