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(){...}