課堂筆記
- 如何監(jiān)聽
<form>的提交事件
<body>
<form action="post" id='formID'>
<input type='text' name='content'>
<input type='submit' value='提交'>
</form>
<script>
var form = document.querySelector('#formID')
form.addEventListener('submit',function(x){
x.preventDefault()
console.log(form.querySelector('type[name=content]').value)
form.querySelector('type[name=content]').value = ''//在表單提交后清空其內(nèi)容
})//注意此處監(jiān)聽的是<form>而不是<type>的'click'事件!
</script>
</body>
為什么不監(jiān)聽click 事件?因?yàn)閮H監(jiān)聽'click'事件時(shí),便無法監(jiān)聽用戶使用回車提交的情況,監(jiān)聽<form>的'submit'事件可以同時(shí)監(jiān)聽用戶回車和點(diǎn)擊提交數(shù)據(jù)
-
MVC是什么(個(gè)人理解)
MVC是一種代碼的組織模式,是三個(gè)單詞的首字母縮寫:model、view、controller
MVC模式認(rèn)為,程序可以分為三層:頂層視圖層,中間層控制層,最底層數(shù)據(jù)層
model就在最底層與服務(wù)器打交道,負(fù)責(zé)數(shù)據(jù)相關(guān)操作
view在最頂層負(fù)責(zé)視圖的渲染
controller在中間層監(jiān)聽model與view的變化,并進(jìn)行相關(guān)的操作
圖轉(zhuǎn)自《「每日一題」MVC 是什么?(續(xù)1)》——知乎方應(yīng)杭 - 通過不同的文件名,來將不同功能的JS代碼進(jìn)行分塊,便于管理。為避免全局變量的相互覆蓋,要在不同的JS文件中使用立即執(zhí)行函數(shù),在立即執(zhí)行函數(shù)內(nèi)部要想聲明一個(gè)全局變量,應(yīng)使用
window.xxx的形式 - 箭頭函數(shù)內(nèi)部this沒有特殊意義,就如同一個(gè)普通變量一樣,會(huì)鏈?zhǔn)较蛏险腋缸饔糜騼?nèi)的this
- 不同的JS文件不代表是不同的作用域,不可用let重復(fù)聲明變量
- 在對(duì)象內(nèi)部的函數(shù)中使用this要特別小心,可能需要用
bind()綁定this -
onclickaddEventListener()這兩個(gè)API的this是綁定事件的對(duì)象 - jQuery API
on()的this分兩種情況:1.函數(shù)參數(shù)中沒有選擇器時(shí),this指向綁定事件的對(duì)象 2.函數(shù)參數(shù)中有選擇器時(shí),this指向這個(gè)選擇器選中的對(duì)象
