mis*_*iru 5 html javascript event-listener pycharm dom-events
PyCharm(我想与WebStorm和其他JetBrains IDE相同)已经有一段时间了,它对event我在代码中使用的变量提出了弱警告。
例如下面的代码
<div id="my-div" onclick="event.preventDefault();">...</div>
Run Code Online (Sandbox Code Playgroud)
PyCharm显示此消息“已使用不赞成使用的符号,请查阅文档以寻求更好的替代方法”。
问题似乎是该event变量引用Window.event,并且根据MDN Web Docs:
您应该避免在新代码中使用此属性,而应使用传递到事件处理程序函数中的Event。此属性不受普遍支持,即使受支持也会给您的代码带来潜在的脆弱性。
我知道正确的解决方法是在javascript标签中编写:
document.getElementById("my-div").addEventListener("click", function(event) {
console.log("And use this " + event + " instead");
});
Run Code Online (Sandbox Code Playgroud)
我只是想知道如果存在的话,在HTML代码(onclick属性)中使用事件的正确方法是什么。
先感谢您!
Ita*_*mar -5
只需将事件传递给回调,在 JS 端使用它:
function preventDefault(e) {
e.preventDefault();
}Run Code Online (Sandbox Code Playgroud)
<div id="my-div" onclick="preventDefault(e)">Click me</div>Run Code Online (Sandbox Code Playgroud)
或者你可以在 HTML 中的闭包中调用它
<div id="my-div" onclick="(function(e){e.preventDefault()})(e)">Click me</div>Run Code Online (Sandbox Code Playgroud)
我强烈建议您使用第一个选项而不是后者