gpt4 book ai didi

jquery - 为什么这个 JavaScript 不执行?

转载 作者:行者123 更新时间:2023-12-01 06:36:33 25 4
gpt4 key购买 nike

我正在尝试让一些 jquery 在 jinja2 模板中工作。预期的行为是选中 SelectAll 框将选中其余的框。我已向 .change 事件添加了一个警报以开始调试,但我发现它没有运行。所以该脚本从未被实际调用过。

我做错了什么?

{% extends "layout.html" %}
{% block head %}<head>
{% block title %}Home{% endblock %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(':checkbox[name=selectAll]').change (function () {
$(':checkbox[name=instances]').prop('checked', this.checked);
alert("FOO");
});
</script>
</head>
{% endblock %}
{% block body %}

<form target="" method="GET" id="testform">
<div>
Select All: <input type="checkbox" name="selectAll" id="selectAllInstances" /> <br />
{% for k in tests %}
<input type="checkbox" name="instances" value="{{ k[1].mongo_id }}">{{ k[0] }} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description: {{ k[1].__doc__ }} <br />
{% endfor %}
</div>
<br />
<br />
<input type="submit">
</form>
{% endblock %}

最佳答案

该模板是一个转移注意力的东西。在将事件处理程序绑定(bind)到它们的脚本运行时,您的复选框并不存在。

您有几个选择。

  • 将脚本元素移动到 HTML 中复选框后的某个位置
  • 将脚本包装在函数中并延迟调用它直到稍后(例如使用 document.ready 事件)。
  • 使用event delegation而不是直接绑定(bind)。

关于jquery - 为什么这个 JavaScript 不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com