Jquery 为什么';这个javascript不能执行吗?
我正在尝试在jinja2模板中使用一些jquery。预期的行为是,选中SelectAll框将选中其余框。我已经向.change事件添加了一个警报以开始调试,但我发现它没有运行。因此,脚本从未真正被调用 我做错了什么Jquery 为什么';这个javascript不能执行吗?,jquery,jinja2,Jquery,Jinja2,我正在尝试在jinja2模板中使用一些jquery。预期的行为是,选中SelectAll框将选中其余框。我已经向.change事件添加了一个警报以开始调试,但我发现它没有运行。因此,脚本从未真正被调用 我做错了什么 {% extends "layout.html" %} {% block head %}<head> {% block title %}Home{% endblock %} <script src="//ajax.googleapis.com/ajax/libs/j
{% 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 />
Description: {{ k[1].__doc__ }} <br />
{% endfor %}
</div>
<br />
<br />
<input type="submit">
</form>
{% endblock %}
{%extends“layout.html”%}
{%block head%}
{%block title%}主页{%endblock%}
$(':复选框[name=selectAll]')。更改(函数(){
$(':checkbox[name=instances]').prop('checked',this.checked);
警惕(“FOO”);
});
{%endblock%}
{%block body%}
全选:
{测试中k的%s%}
{{k[0]}}
描述:{{k[1].\uuuuu doc\uuuuuuu}}
{%endfor%}
{%endblock%}
该模板是一种误导。在将事件处理程序绑定到它们的脚本运行时,您的复选框不存在
你有几个选择
- 将脚本元素移动到HTML中复选框后的某个点
- 将脚本包装到函数中,并将调用延迟到稍后(例如,使用document.ready事件)
- 使用而不是直接绑定
- 将脚本元素移动到HTML中复选框后的某个点
- 将脚本包装到函数中,并将调用延迟到稍后(例如,使用document.ready事件)
- 使用而不是直接绑定
$(function(){
$(':checkbox[name=selectAll]').change (function () {
$(':checkbox[name=instances]').prop('checked', this.checked);
alert("FOO");
});
});
如果没有它,脚本将在DOM元素准备好遍历之前运行
注:
是的缩写
$(document).ready(function(){
//your code
});
您需要将jquery包装在document.ready中,即
$(function(){
$(':checkbox[name=selectAll]').change (function () {
$(':checkbox[name=instances]').prop('checked', this.checked);
alert("FOO");
});
});
如果没有它,脚本将在DOM元素准备好遍历之前运行
注:
是的缩写
$(document).ready(function(){
//your code
});
当该行执行时:
$(':checkbox[name=selectAll]').change(...);
没有名为selectAll的复选框——它是在脚本下面定义的。将代码包装在.ready事件中:
$(document).ready(function(){
});
当DOM层次结构完全构建时(简单地说,当浏览器看到
时),将触发该事件。执行此行时:
$(':checkbox[name=selectAll]').change(...);
没有名为selectAll的复选框——它是在脚本下面定义的。将代码包装在.ready事件中:
$(document).ready(function(){
});
当DOM层次结构完全构建时(简单地说,当浏览器看到
时),会触发事件。document.ready函数:)您应该通读此文档以帮助学习基础知识文档。ready函数:)您应该通读此文档以帮助学习基础知识