我正在使用 jQuery 开发一个网站,但我试图不再使用它。在 jQuery 中,您可以在不在网站上或尚未创建的元素上添加偶数侦听器,这没有问题。我的元素仅在您登录时出现在 DOM 上,并且整个网站只有一个 JS 文件。
问题是,例如,当您登录时,您看不到“登录”按钮,它甚至不在 DOM 中,但代码中仍然有事件侦听器,控制台上没有错误,脚本运行出色地。
$("#logInButton").on("click", somefunction);
Run Code Online (Sandbox Code Playgroud)
但是,document.querySelector("#logInButton").onclick = somefunction已经使用并登录了,它会抛出一个错误,因为document.querySelector("#logInButton")它为空。
我可以这样做:
let logInButton = document.querySelector("#logInButton");
logInButton ? logInButton.onclick = somefunction : "";
Run Code Online (Sandbox Code Playgroud)
它运作良好,但我知道这不是一个好的做法。如果不使用 jQuery,有什么解决方法或改进吗?