JQuery простой вопрос слайдера на timeOut - PullRequest
1 голос
/ 18 июня 2011

У меня есть функция с именем 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 не определено

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Вам необходимо определить функцию slideMe вне обработчика document.ready.Также было бы лучше передать метод 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);
    }); 
});
0 голосов
/ 18 июня 2011

попробуйте slideMe=function(){...} вместо function slideMe(){...}

...