基于函數(shù)執(zhí)行的踩坑(addEventListener)
記錄一次踩坑經(jīng)歷
寫法一
const outer = function () { var x = "我是外面函數(shù)的變量"; console.log('我現(xiàn)在要在外層被調(diào)用'); return function () { console.log(x); } }; document.addEventListener('scroll', outer)
結(jié)果:
寫法二
const outer = function () { var x = "我是外面函數(shù)的變量"; console.log('我現(xiàn)在要在外層被調(diào)用'); return function () { console.log(x); } }; document.addEventListener('scroll', outer())
結(jié)果:
兩種寫法在于第二種寫法在事件綁定的時候默認的執(zhí)行了一次outer,所以得到的是inner函數(shù)了,以后翻頁執(zhí)行的是inner函數(shù)
.addEventListener添加事件失敗原因之一
正確語法
document.getElementById("myBtn").addEventListener("click", function(){ ? ? document.getElementById("demo").innerHTML = "Hello World"; });
addEventListener() 方法用于向指定元素添加事件句柄。
注意,這個指定元素是一個元素,所以當使用document.getElementsByClassName();來獲取對象然后再添加事件的時候就會失效,因為它獲取的是一個數(shù)組對象。
錯誤語法
document.getElementsByClassName("myBtn").addEventListener("click", function(){ ? ? document.getElementById("demo").innerHTML = "Hello World"; });
當然,對應數(shù)組對象,要訪問其中的一個元素,我們要加上數(shù)字角標。
使用方式為:
var x = document.getElementsByClassName(); x[0].innerHTML = 'nihao';
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
屏蔽鼠標右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵
js 防止刷新網(wǎng)頁、禁止后退,右鍵等操作的代碼2010-03-03Cropper.js進階之實現(xiàn)圓形頭像裁剪功能示例
這篇文章主要為大家介紹了Cropper.js進階之實現(xiàn)圓形頭像裁剪功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05檢查輸入的是否是數(shù)字使用keyCode配合onkeypress事件
檢查輸入的是否是數(shù)字在本文使用keyCode配合onkeypress事件來實現(xiàn),具體示例如下2014-01-01JavaScript中關(guān)鍵字?var、let、const的區(qū)別詳解
在JavaScript中,var、let和const是用于聲明變量的關(guān)鍵字,它們之間存在一些區(qū)別,這篇文章就給大家詳細介紹一下它們之間的區(qū)別,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下2023-08-08