addEventListener繫結帶參函式
因為以前一直使用的jquery
,然後剛剛在使用原生dom
繫結帶參的時候出現了一些問題。
初始程式碼片段
<button class="addEvent">繫結事件</button>
<script>
const addEvent = document.querySelector('.addEvent')
addEvent.addEventListener('click',log('繫結事件'))
function log(msg){
console.log(msg)
}
</script >
問題:1、log()
初始自執行了;2、button
沒繫結上這個點選事
後來找資料才找到原因:addEventListener
第二個引數接收的是個function
,在觸發時執行的。你一定要把某個引數傳到這個function
裡的話,用閉包返回一個function
正確寫法
function log(msg){
return function(e){
console.log(msg)
//to do
}
}
相關推薦
addEventListener繫結帶參函式
因為以前一直使用的jquery,然後剛剛在使用原生dom繫結帶參的時候出現了一些問題。 初始程式碼片段 <button class="addEvent">繫結事件</button> <script> const addEvent =
CVTE面試題——解決用addEventListener繫結的函式傳參無效問題
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head&g
JavaScript中如何使addEventListener繫結的函式既能傳參還能解綁?
var btn = document.getElementsByClassName('btn')[0], remove = document.getElementsByClassName('remove')[0]; var some = function (msg) {
html之動態繫結帶引數的函式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti
C++中的動態型別與動態繫結、虛擬函式、執行時多型的實現【轉】
(轉自:https://blog.csdn.net/iicy266/article/details/11906509) 動態型別與靜態型別 靜態型別 是指不需要考慮表示式的執行期語
BOM學習筆記(二)繫結事件處理函式、history、location
5、navigator物件包含有關瀏覽器的資訊 navigator物件集合  
unity | 按鈕onClick沒有function解決辦法、button繫結回撥函式步驟
0. 首先新建C#指令碼,定義回撥函式,例如:resetPos using System.Collections; using System.Collections.Generic; using State; using UnityEngine; using UnityEngine.UI; p
【v-on】一個元素繫結多個事件以及一個事件繫結多個函式的兩種寫法
本文程式碼主要講述了v-on繫結事件函式傳參,一個元素繫結多個事件的兩種寫法,一個事件繫結多個函式的兩種寫法,修飾符的使用。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8
cocos2d-js-v3.0-rc2:js繫結呼叫c++函式 1
分享一種簡單的js呼叫c++程式碼的繫結方法、 首先用c++寫一個方法,為了簡便就在CCSprite裡面寫個一個sumTwonum(兩個數相加) 在CCSprite.h裡新增 public: int sumTwonum(int a,int b); 在CCSprit
【轉】C++動態繫結和虛擬函式表vtable (動態實現原理)
關於C++內部如何實現多型,對程式設計師來說即使不知道也沒關係,但是如果你想加深對多型的理解,寫出優秀的程式碼,那麼這一節就具有重要的意義。 我們知道,函式呼叫實際上是執行函式體中的程式碼。函式體是記憶體中的一個程式碼段,函式名就表示該程式碼段的首地址,函式執行時就從這裡開始。說得簡單
vue中html模板使用繫結的全域性函式
我們知道在script中使用vue繫結的全域性函式時, 我們需要用這種方式使用: this.Util.Fun(e) 那在模板中, 比如v-if中想使用Fun函式怎麼辦呢?你應該這樣做 <i v-if="Util.getFileExt(scope.row.name) == 'mp
js用addeventlistener繫結事件,阻止預設事件。
var linkG = document.getElementById('g'); linkG.addEventListener('click', function(e){ test();
Js事件繫結時,函式名加括號和不加括號有什麼區別
一,在js程式碼裡 加括號代表呼叫,執行這個方法; 不加括號目的是引用,代表把這個函式賦值給某個變數。 在下面程式碼裡: 1.1 btn.onclick=aa;是正
Gridview中HyperLink的NavigateUrl繫結傳參問題
<asp:HyperLink ID="HyperLink1" NavigateUrl='<%# Eval("ProjectID","MarketingLogList.aspx?ProjectInfoID={0}") %>' Text='<%# Bind("ProjectName"
boost庫在工作(13)繫結器與函式物件之一
有一天,有一個同事過來問我,有沒有辦法把兩個引數變成一個引數,然後傳送給STL的演算法模板使用。我想了一下,要把兩個引數變成一個引數,只有一個辦法,就是使用繫結器。其實繫結器就是把兩個或兩個以上的引數變成一個引數,也就是變成函式物件的方式。在STL模板庫裡提供兩個繫結器:bi
C++中的動態型別與動態繫結、虛擬函式、執行時多型的實現
動態型別與靜態型別 靜態型別 是指不需要考慮表示式的執行期語義,僅分析程式文字而決定的表示式型別。靜態型別僅依賴於包含表示式的程式文字的形式,而在程式執行時不會改變。通俗的講,就是上下文無關,在編譯時就可以確定其型別。 動態型別 是指由一個
cocos繫結回撥函式的寫法
void update_func(引數1); 類成員->setUpdateFunc(CC_CALLBACK_1(類::update_func, this)); CC_CALLBACK_1表示繫結帶一個引數的成員函式 CC_CALLBACK_2表示繫結帶兩個引數
ZigBee學習之繫結表管理函式詳解——ZStack API解讀
應用支援子層(APS) 應用支援子層提供如下管理功能: · 邦定表管理 · 組表管理 · 快速地址查詢 除了管理功能外,APS還提供資料服務,只是應用不能訪問資料服務。應用需要通過AF資料介面AF_DataRequest()來發送資料。如果要使用邦定表函式需要包含BindingTable.h標頭檔案
MySql學習:自定義函式之帶參函式
delimiter // -- 如果資料庫 test 裡的存在函式 formatDate,就刪除這個函式 DROP FUNCTION IF EXISTS test.formatDate; -- 建立一個
在.aspx.cs(後臺)中對aspx控制元件繫結前臺Javascript函式的幾種方法
最近中途接手了一個專案,做web開發,用的技術是aspx.net,可是真的做起來,覺得非常彆扭,原因在於有很多功能其實在前臺可以處理的,但是因為用到了很多webcontrol,導致不斷postback。如果利用ajax來處理可能會好些。目前只能通過在後臺對這些控制元件繫結前臺