jquery问题,关于setTimeout(function(){},1000);
jquery吧
全部回复
仅看楼主
level 1
yiyanweilove 楼主
$(document).ready(function () {
     //firstly,find all selector
     $("li").each(function (key, value) {
         $(this).mouseover(function () {
             var liNode = $(this);
             var timeid = setTimeout(function () {
                 $("div.contentin").removeClass("contentin");
                 $("li.tabin").removeClass("tabin");
                 $("div").eq(key).addClass("contentin");
                 alert(this);
                 liNode.addClass("tabin");
             }, 500);
         }).mouseout(function () {
             clearTimeout(timeid);
         });
     });
});
为什么我加了一个setTimeout之后,this就是window对象了呢?
2011年04月06日 11点04分 1
level 1
不是你加了一个setTimeout后,不管你加不加setTimeout,this就是一个window对象,$(this)就是一个jquery对象了
2011年05月09日 14点05分 2
level 1
误打误撞 一下跑到这个帖子里来了……
setTimeout函数是window的一个属性方法
当你在setTimeout中运行的时候 this指向当前上下文(作用域) 是window 所以你在里面
alert(this)是window
如果你想让外层mouseover里的$(this) 也在 setTimeout里用, 就定时函数里直接用liNode 即可
2015年11月12日 02点11分 3
1