亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

谷歌瀏覽器中錯誤提示:Cannot read property 'addEventListener' of undefined.

谷歌瀏覽器中錯誤提示:Cannot read property 'addEventListener' of undefined.

再雨 2017-06-04 13:19:14
我按照課程Datapicker組件開發,一行一行的敲代碼。其中第五章節的第二小節,我再加入一個addEventListener的時候,瀏覽器報錯。報錯在第95行,但是在80行同樣有addEventListener,卻沒有報錯。(function(){ var?datepicker?=?window.datepicker; var?monthData; var?$wrapper; datepicker.buildUi?=?function(year,?month){ monthData?=?datepicker.getMonthData(year,?month); var?html?=?'<div?class="ui-datepicker-header">'+ '<a?href="#"?class="ui-datepicker-btn?ui-datepicker-prev-btn">&lt;</a>'+ '<a?href="#"?class="ui-datepicker-btn?ui-datepicker-next-btn">&gt;</a>'+ '<span?class="ui-datepicker-curr-month">'?+?monthData.year?+?'-'?+?monthData.month?+?'</span>'+ '</div>'+ '<div?class="ui-datepicker-body">'+ '<table>'+ '<thead>'+ '<tr>'+ '<th>一</th>'+ '<th>二</th>'+ '<th>三</th>'+ '<th>四</th>'+ '<th>五</th>'+ '<th>六</th>'+ '<th>日</th>'+ '</tr>'+ '</thead>'+ '<tbody>'; for(var?i?=?0?;i<monthData.days.length;?i++){ var?date?=?monthData.days[i]; if?(i%7?===?0)?{ html?+=?'<tr>'; } html?+=?'<td>'?+?date.showDate?+?'</td>' if(i&7?===?6){ html?+=?'</tr>' } } html+=?'</tbody>'+ '</table>'+ '</div>'; return?html; }; datepicker.render?=?function(direction){ var?year,month; if(monthData){ year?=?monthData.year; month?=?monthData.month; } if(direction?===?'prev')?month--; if(direction?===?'next')?month++; var?html?=?datepicker.buildUi(year,?month); if?(!$wrapper)?{ var?$wrapper?=?document.createElement('div'); $wrapper.className?=?'ui-datepicker-wrapper'; document.body.appendChild($wrapper); } $wrapper.innerHTML?=?html; } datepicker.init?=?function(input){ datepicker.render(); var?$input?=?document.querySelector(input); var?isOpen?=?false; $input.addEventListener('click',function(){ if(isOpen){ $wrapper.classList.remove('ui-datepicker-wrapper-show'); isOpen?=?false; }else{ $wrapper.classList.add('ui-datepicker-wrapper-show'); var?left?=?$input.offsetLeft; var?top?=?$input.offsetTop; var?height?=?$input.offsetHeight; $wrapper.style.top?=?top?+?height?+?2?+?'px'; $wrapper.style.left?=?left?+?'px'; isOpen?=?true; } },false); $wrapper.addEventListener('click',?function(e){ var?$target?=?e.target; if(!$target.classList.contains('ui-datepicker-btn'))?return?; if($target.classList.contains('ui-datepicker-prev-btn')){ datepicker.render('prev'); }else?if($target.classList.contains('ui-datepicker-next-btn')){ datepicker.render('next'); } },?false); }; })();以上是我的源碼,雖然有些長。希望大大指教我一下...
查看完整描述

1 回答

已采納
?
千秋此意

TA貢獻158條經驗 獲得超188個贊

你這代碼好像沒上完。。沒看過那個課程,你看看是不是你上面貼的代碼第67行: var?$wrapper?=?document.createElement('div'); 這一句的鍋,去掉 var 關鍵詞試試:

$wrapper?=?document.createElement('div');

查看完整回答
反對 回復 2017-06-04
  • 再雨
    再雨
    謝謝,但是修改過后還是一樣的。 這個代碼雖然還沒寫完,但是就目前的代碼實際上已經接近完成,只有一兩個功能還未實現。 我發現這個代碼還有很多問題,所以打算自己解決。感謝你的回復。
  • 1 回答
  • 0 關注
  • 5505 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號