4个li,鼠标移上li时执行$(this).animate({ width: "515px"}, 500);其它li执行$(this).css("width", 0);可是我控制鼠标快速滑过4个li时,执行了四次代码,并且$(this).css("width", 0);把宽度设为0失败了,当执行onmouseover速度大于0.5秒时,不会有问题
$(".nav li").mouseover(function () {
var i = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
if ($("#img" + i).css("width") != "515px") {
$(".nav ul li").each(function () {
var j = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
if (i == j) {
$(".back" + i).attr("class", "on" + j);
$(".back" + i).attr("width", "14px");
}
else {
var k = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
$(this).attr("class", "back" + k);
}
});
$(".nav ul div").each(function () {
if ($(this).attr("id") == "img" + i) {
$(this).animate({ width: "515px"}, 500);
}
else {
$(this).css("width", 0);
}
});
}
});
var obj = null;//全局变量 存储当前动画元素
$(document).ready(function () {
$("#img1").css("width", 515);
$(".nav li").mouseover(function () {
var i = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
if ($("#img" + i).css("width") != "515px") {
$(".nav ul li").each(function () {
var j = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
if (i == j) {
$(".back" + i).attr("class", "on" + j);
}
else {
var k = $(this).attr("class").substr($(this).attr("class").length - 1, 1);
$(this).attr("class", "back" + k);
}
});
$(".nav ul div").each(function () {
if ($(this).attr("id") == "img" + i) {
if(obj){$(obj).stop();}//如果上一个元素还在执行,那么马上停止
obj = $(this);
$(this).animate({ width: "515px" }, 500);
}
else {
$(this).css("width", "0px");
}
});
}
});
});