簡體   English   中英

JavaScript鼠標單擊addEventListener不起作用

[英]JavaScript Mouse Click addEventListener Not Working

// ADD PANEL TO BODY調用“將// ADD PANEL TO BODY addEventListener("click", forgotPassword)事件時addEventListener("click", forgotPassword)不起作用。 請幫助解決此問題。

Javascript:

var forgot_password_btn = document.querySelector("#forgot_password");
var theme_panel = "<div id=\"change-theme\"><a href=\"javascript:;\" class=\"dark\">DARK</a><a href=\"javascript:;\" class=\"light\">LIGHT</a></div>";

if (forgot_password_btn) {
    forgot_password_btn.addEventListener("click", forgotPassword);
}

function forgotPassword() {
    console.log("clicked");
}

// ADD PANEL TO BODY
window.onload = function () {
    document.body.innerHTML += theme_panel;
};

HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <a href="#" id="forgot_password">Forgot</a>
</body>
</html>

提取forgot_password元素時,DOM未准備好。 因此,不進行綁定。 將邏輯放入onload事件中:

function forgotPassword() {
    console.log("clicked");
}

// ADD PANEL TO BODY
window.onload = function () {

    var forgot_password_btn = document.querySelector("#forgot_password");
    var theme_panel = "<div id=\"change-theme\"><a href=\"javascript:;\" class=\"dark\">DARK</a><a href=\"javascript:;\" class=\"light\">LIGHT</a></div>";

    if (forgot_password_btn) {
        forgot_password_btn.addEventListener("click", forgotPassword);
    }
};

另外,您應該避免這樣直接在JS中插入HTML內容。 將其放入HTML或使用模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM