html - HTML:“onclick”每次刷新都会执行操作
问题描述
我不知道,为什么每次刷新都会执行“onclick”操作(在按钮上或 - 我都尝试过)。当我打开这个页面时,我可以观察到与“set_active_experiment()”和“create_experiment()”相关的动作。我只想在单击链接/按钮时调用这些函数。你有什么想法?
代码:
<html>
<head>
<title>Experiments</title>
</head>
<body>
<div class="experiments">
<h3>Your experiments:</h3>
{% with experiments = get_user_experiments() %}
{% if experiments %}
{% for exp in experiments %}
<a href="{{ url_for('experiment') }}"><button onclick="{{ set_active_experiment(exp) }}">{{ exp }}</button></a>
{% endfor %}
{% endif %}
{% endwith %}
</div>
<div>
<a href="{{ url_for('experiments') }}"><button onclick="{{ create_experiment() }}">Create new experiment</button></a>
</div>
</body>
解决方案
您正在立即调用这些函数,因为您已将它们包裹在大括号中。这意味着,代码会立即被评估和执行。
<button onclick="{{ create_experiment() }}">Create new experiment</button>
如果要在单击时调用函数,请删除括号并将调用添加为字符串文字:
<button onclick="create_experiment()">Create new experiment</button>
调用时也是如此set_active_experiment()
。
推荐阅读
- angularjs - Admob angularjs
- metaprogramming - 水晶语言:如何用项目特定包中文件中定义的所有模块填充数组?
- shell - 获取 sh: =~: shell 脚本中的未知操作数
- android - 尝试添加 firebase ml 视觉图像标签模型时,Gradle 同步失败
- routes - 重新加载页面回到登录角度 6
- linq - Kotlin 中的语言集成查询?
- javascript - AJAX 在 macOS WebView 中不起作用
- service - 在服务中处理较长的 Pod 响应时间
- javascript - ExtJs 工具栏配置对象
- node.js - 使用反向代理运行的 NodeJS 服务器