【问题标题】:Button Onclick function executes on load按钮 Onclick 函数在加载时执行
【发布时间】:2019-10-27 06:21:16
【问题描述】:

当页面加载时,无论按钮是否被点击,函数都会执行,注意我使用的是 EJS。

我尝试将<% 标签更改为<%=<%-,并使其成为箭头函数:<% () => Delt(this.id);%>

<%function Delt() { Array.pop(); }%>
<button onclick="<%Delt(this.id);%>">Delete</button>

【问题讨论】:

    标签: javascript express ejs


    【解决方案1】:

    你在这里对客户端和服务器端感到困惑,无论ejs标签在你的dom加载之前在服务器上执行。所以ejs标签中定义的函数被执行,因为它们不在客户端js.尝试在客户端js而不是ejs中定义你的函数,函数调用也是如此。

    <%function Delt() { Array.pop(); }%> // function definition in ejs
    <button onclick="<%Delt(this.id);%>">Delete</button> // function call in ejs
    

    所以所有的东西都会在你的 dom 加载之前在服务器中执行,你只是在 ejs 中进行正常的函数调用,它看不到你的 onclick 因为那是你的浏览器的一部分。

    【讨论】:

    • 感谢您的帮助,我将尝试使用 socket.io 来获得所需的效果。
    • 如果对您有帮助,请接受答案。乐于助人 :)@IronInstrumentals
    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多