我有一个名为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未定义
我该怎么做?
答案 0 :(得分:1)
您需要在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);
});
});
答案 1 :(得分:0)
尝试slideMe=function(){...}
而不是function slideMe(){...}