[英]Passing the clicked element to a function
按鈕 2 沒有按預期工作(更新它的文本,如按鈕 1)。 “this”不是指按鈕元素,而是指 window。 如何修復按鈕 2? 謝謝
<button id="btn1">Click me 1</button> <button id="btn2">Click me 2</button> <script> var btn1 = document.getElementById("btn1"); var btn2 = document.getElementById("btn2"); btn1.addEventListener("click", function() { this.innerText = "Come on"; }); btn2.addEventListener("click", changeMyText(this)); function changeMyText(btn) { btn.innerText = "Come on"; // console.log(btn); //here I get the window object //I expected the button } </script>
您立即執行處理程序 - 刪除 (this) 並使用 e.target
我也想改成 type="button"
<button type="button" id="btn1">Click me 1</button> <button type="button" id="btn2">Click me 2</button> <script> var btn1 = document.getElementById("btn1"); var btn2 = document.getElementById("btn2"); btn1.addEventListener("click", function() { this.innerText = "Come on"; }); btn2.addEventListener("click", changeMyText); function changeMyText(e) { e.target.innerText = "Come on"; } </script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.