# [JavaScript] event事件 ###### tags: `JavaScript` Html產生按鈕後,js設定彈跳視窗顯示字幕  function()代入任意字元,便可使用console追蹤按鈕點入詳情,同時在多種的事件語法中,可提供紀錄匯出資料,是很重要的紀錄功能。  ### e.target用法 簡述:觸發事件就我們的印象中是帶入參數,傳遞從html來的特定欄位值,然而在原生的JS寫法,時常利用function(e){}預設的e去取得被點擊區塊的詳細資訊,而常使用e.target取得內部元素資料 ### 案例 詳述:當要刪除經由迴圈產生出的列表時,就可以使用e.target確認id編號,再經由迴圈比對編號知道序號index,再splice刪除。 https://codepen.io/vincer-chen/pen/wvWwPWZ?editors=1012 ### e.target點擊黑鈕,會出現`<li>`標籤內容  ### e.target點擊連結,會顯示`<a>`標籤內容  *事件監聽addEventListener 相較於onclick語法顯示最新的click宣告,使用事件監聽則可呼叫所有的click需求  寫法addEventListener('click',function(),false) 使用監聽add-1及2都會彈出結果,則onlick只彈出add-2 false(預設):指定元素往外面找,顯示box -> body true:從最外面找到指定元素,顯示body -> box  *終止冒泡事件stopPropagation * 在<body>及<class="box">都有宣告彈出視窗的情況下,點擊物件兩個宣告會依序出現,而使用此語法可終止出現第二層的動作,只做第一層的宣告。 * function(e)帶入事件監聽e,讓程式紀錄後暫停第二步的動作  *取消預設行為preventDefault 原先點擊link會跳轉到google官網,透過此語法能終止預設行為的發生  用法二  ## change表單內容的觸發 html語法  js語法:第一步命名,這邊getElementById與最下方的監聽做對應,list用來匯入innerHTML做對應   * 這邊的變數select為當下選擇的物件,target是選取到物件的值為何,ex:選擇前鎮區,值便會顯示前鎮區。 * 而str變數是為了組字串,迴圈組好後以字串呈現 * if迴圈的部分,如果select撈到相同地點的名稱(代名詞的概念) ,則顯示下列條件,str累加的方式將農夫名稱資料用li條列式呈現。 * list.innerHTML導入html語法,str向前呼應var str=""字串,這又與迴圈回傳得出的結果,便可出現農夫名稱的結果列表 ## keydown鍵盤觸發 點擊特定鍵盤按鍵,即可變更物件狀態,ex:發射火箭 html  css 移動火箭的幅度調整速率  js 第一步:得知鍵盤對應代碼,可利用console log做查詢   第二步:使用switch語法做判斷式(指定答案推薦使用),case後的數字為鍵盤代碼,下方新增指定項目querySelector,以style.bottom調整上升高度  ## blur離開焦點時觸發事件 * 目的:空格處若無填寫任何數值,會跳出字樣提醒使用者填入資料 * var str = e.target.value;帶出指定位置的值(背) * 離開hamNumId指定位置後,便會呼叫blur的語法  空欄顯示藍邊代表是在focus的狀態,點擊旁邊後無藍邊的狀態下便會呼叫blur並觸發指定動作。  ## mousemove滑鼠滑動到物件所觸發的事件 物件是Box,當使用此事件語法,觸碰到box便會彈跳出警告標語 ex:創建電棒遊戲,碰到就顯示你輸了。  ## 網頁座標  screen: 全版視窗內的座標 page: 內建設定的此頁長寬 client:既有的視窗大小內的座標位置 ## 事件監聽優化,從父元素監聽子元素 第一步:直接監聽list而非 list.li,若使用list.li只會抓到第一筆資料 第二步:target.nodeName為確認節點所使用,點擊便可顯示所在位置是li還是ul或a等等 第三步:如果監聽父元素點擊ul的範圍裡,點擊ul or li,只要在ul裡頭的元素都會被偵測到,因此需要寫判斷式告知系統若不是點擊到li就用return回傳空值。“LI需大寫”  1. 宣告html的ID位置 * queryselector(指定多個不同位置) * getElementById(只指定一個) ``` document.queryselector('.box') ``` 2. 監聽addEventListener * 寫法說明:el.addEventListener('選擇事件',匿名function,false) * 選擇事件有:click(取代onclick),mousemove,blur等等 範例:`el.addEventListener('mousemove',function(e){ alert('hello'); },false)` 3. 匯出值e.target.value;
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.