鍍金池/ 問(wèn)答/HTML/ body標(biāo)簽如何獲取

body標(biāo)簽如何獲取

$('body').keydown(function() {

         if (event.keyCode == "13") {//keyCode=13是回車(chē)鍵
             document.getElementById('btnSumit').click();
         }
     });

這行代碼的$('body')換成原生document.body.keydown(function() {

         if (event.keyCode == "13") {//keyCode=13是回車(chē)鍵
             document.getElementById('btnSumit').click();
         }
     });

為何會(huì)報(bào)警document.body不是一個(gè)函數(shù)

回答
編輯回答
笑浮塵

原生js直接寫(xiě)是需要帶on前綴的。onkeydown、onclick

如果是addEventListener的就不需要on前綴

document.body.onkeydown = function(){
   if (event.keyCode == "13") {//keyCode=13是回車(chē)鍵
       document.getElementById('btnSumit').onclick();
   }
}

------

document.body.addEventListener("keydown",function(){
   if (event.keyCode == "13") {//keyCode=13是回車(chē)鍵
       document.getElementById('btnSumit').onclick();
   }
},false)
2017年10月30日 14:30
編輯回答
冷眸

首先 報(bào)錯(cuò)是Uncaught TypeError: document.body.keydown is not a function
document.body.keydown不是一個(gè)函數(shù) 而不是document.body

clipboard.png

其次keydown()這種是jQuery對(duì)象的實(shí)例方法,并不是dom實(shí)例上的方法。而且老老實(shí)實(shí)來(lái),jQuery事件綁定規(guī)范一點(diǎn)的話都應(yīng)寫(xiě)成

$("body").on("keydown",function(e){
    //你的邏輯
})

故而
我們應(yīng)該寫(xiě)成

document.querySelector("body").addEventListener("keydown",function(e){
    //你的邏輯
})

為了之后能夠有解綁的機(jī)會(huì),最好單獨(dú)給function一個(gè)引用 而非匿名函數(shù)

2017年10月25日 13:42
編輯回答
葬憶
document.body.onkeydown = function(){
   if (event.keyCode == "13") {//keyCode=13是回車(chē)鍵
       document.getElementById('btnSumit').click();
   }
}
2017年12月20日 23:29