jQuery简单的滑块问题,在timeOut

我有一个叫做slideMe()的函数,我需要为每个滑块链接延迟几秒钟来启动它。

jquery版本是1.4.2

代码是:

$(document).ready(function(){
    var img_id;
    var clicked;

 function slideMe(img_id){

       $('.slider-menu-item').css('color','#fff');
       $('#'+img_id).css('color','#EBE1B9');
       $('.slider-img').hide();
       $('#slider-img-'+img_id).fadeIn(600);

    };

$.each($('.slider-menu-item'),function(){

   img_id = $(this).attr("id");
   setTimeout("slideMe()",900);

    console.log(img_id)

});
   $('.slider-menu-item').live('click',function(){
       img_id = $(this).attr("id");
       clicked = 1;
    slideMe(img_id);
}); 

});//end document.ready

但在控制台日志中,我收到错误消息:

slideMe未定义

我该怎么办?


您需要在document.ready处理程序之外定义slideMe函数。 此外,最好直接将该方法传递给setTimeout,而不是使用字符串。 另外slideMe方法需要一个参数,所以确保你通过它:

function slideMe(img_id) {
    $('.slider-menu-item').css('color', '#fff');
    $('#' + img_id).css('color', '#EBE1B9');
    $('.slider-img').hide();
    $('#slider-img-' + img_id).fadeIn(600);
}

$(document).ready(function() {
    var img_id;
    var clicked;

    $('.slider-menu-item').each(function() {
        img_id = $(this).attr('id');
        setTimeout(function() {
            slideMe(img_id);    
        }, 900);
    });

    $('.slider-menu-item').live('click',function() {
        img_id = $(this).attr("id");
        clicked = 1;
        slideMe(img_id);
    }); 
});

尝试slideMe=function(){...}而不是function slideMe(){...}

链接地址: http://www.djcxy.com/p/12419.html

上一篇: JQuery simple slider issue on timeOut

下一篇: Select <a> which href ends with some string