事件:“使用了不赞成使用的符号,请向文档咨询以获得更好的替代方法”

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)

我强烈建议您使用第一个选项而不是后者

  • 这根本不是一个解决方案。Pycharm 仍然抱怨属性中使用“事件”。 (5认同)