var timeoutid;
$("#topmenu ul li").click(function () {
$("#topmenu ul li").removeClass();
$(this).addClass("current");
$("#panel ul").hide();
$("#ul" + $("#topmenu ul li").index($(this))).show();
}).mouseover(function () {
timeoutid = setTimeout(function () {
$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
}, 200);
}).mouseout(function () {
$(this).removeClass("current2");
clearTimeout(timeoutid)
});请问为什么我加上
timeoutid = setTimeout(function () {
$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
}, 200);
之后$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
效果失效。
去掉
timeoutid = setTimeout(function () {}, 200);即可运行,可以出现问题了,然而
在 $(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
后面加上alert(1);即可运行1,这个是什么原因?
$("#topmenu ul li").click(function () {
$("#topmenu ul li").removeClass();
$(this).addClass("current");
$("#panel ul").hide();
$("#ul" + $("#topmenu ul li").index($(this))).show();
}).mouseover(function () {
timeoutid = setTimeout(function () {
$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
}, 200);
}).mouseout(function () {
$(this).removeClass("current2");
clearTimeout(timeoutid)
});请问为什么我加上
timeoutid = setTimeout(function () {
$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
}, 200);
之后$(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
效果失效。
去掉
timeoutid = setTimeout(function () {}, 200);即可运行,可以出现问题了,然而
在 $(this).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(this)) + 1)).show();
后面加上alert(1);即可运行1,这个是什么原因?
执行函数, this 指向 window.mouseover(function () {
var obj = this;
timeoutid = setTimeout(function () {
$(obj).addClass("current2");
$("#panel ul").hide();
$("#ul" + ($("#topmenu ul li").index($(obj)) + 1)).show();
}, 200);
})这样试试