求高手幫我看下,那里錯了我效果實現(xiàn)不了~~~~
function $(id){
? ?return typeof id==='string'?document.getElementById(id):id;
}
window.onload=function(){
? ?//標簽的索引
? ?var index=0;
? ?var timer=null;
? ?var lis=$('notice-tit').getElementsByTagName('li'),
? ? ? ?divs=$('notice-con').getElementsByTagName('div');
? ?if(lis.length!=divs.length) return;
? ?//遍歷所有頁簽
? ?for(var i=o;i<lis.length;i++) {
? ? ? ?lis[i].id = i;
? ? ? ?lis[i].onmouseover = function{
? ? ? ? ? ?//用that變量來引用當前l(fā)i;
? ? ? ? ? ?var that=this;
? ? ? ? ? ?//如果存在準備執(zhí)行的定時器,立即清除;只有當時時間大于500ms開始執(zhí)行;
? ? ? ?if(timer){
? ? ? ? ? ?clearTimeout(timer);
? ? ? ? ? ?timer=null;
? ? ? ? ? ? }
? ? ? ? ? ?//延遲半秒執(zhí)行;
? ? ? ?timer=setTimeout(function(){
? ? ? ? ? ?for(var j=0; j<lis.length;j++){
? ? ? ? ? ?lis[j].className='';
? ? ? ? ? ? ? ?divs[j].style.display='none';
? ? ? ? ? ?}
? ? ? ?lis[that.id].className='select';
? ? ? ?divs[that.id].className='block';
? ? ? ?},5000);
? ? ? ?}
? ?}
}
求高手幫我看下,那里錯了我效果實現(xiàn)不了~~~~
2015-04-28
?lis[i].onmouseover = function{
這句后面少了()
應該是?lis[i].onmouseover = function (){
2015-03-25
代碼沒有問題,應該是你寫的setTimeout(function(){},5000);你寫了5000,就是5秒了,太久了,
2015-02-14
隨便看了下, onmouseover 這個,算是回調(diào)函數(shù)(反正我這么理解的)。
這樣的話 ,每次調(diào)用到的i就會是 li.length的值,所以 出錯。
你試試 換成匿名函數(shù).
????????????(function(i){
? ? ? ? ? ? ? lis[i].id = i;
? ? ? ? ? ? ? lis[i].onmouseover = function{
? ? ? ? ? ? ? ? ? //用that變量來引用當前l(fā)i;
? ? ? ? ? ? ? ? ? var that=this;
? ? ? ? ? ? ? ? ? //如果存在準備執(zhí)行的定時器,立即清除;只有當時時間大于500ms開始執(zhí)行;
? ? ? ? ? ? ? if(timer){
? ? ? ? ? ? ? ? ? clearTimeout(timer);
? ? ? ? ? ? ? ? ? timer=null;
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? //延遲半秒執(zhí)行;
? ? ? ? ? ? ? timer=setTimeout(function(){
? ? ? ? ? ? ? ? ? for(var j=0; j<lis.length;j++){
? ? ? ? ? ? ? ? ? lis[j].className='';
? ? ? ? ? ? ? ? ? ? ? divs[j].style.display='none';
? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? lis[that.id].className='select';
? ? ? ? ? ? ? divs[that.id].className='block';
? ? ? ? ? ? ? },5000);
? ? ? ? ? ? ? }
? ? ? ? ? ? })(i);//你自己試試。?