我从Flask开始,我在使用jQuery和(我认为)Flask的模板系统时遇到了一些问题。我想要做的非常简单:我在jQuery库之后的布局主模板 layout.html 中包含了一个 behavior.js 脚本。其内容如下:
jQuery(document).ready(function() {
var events = $("#fake_grid td");
while(events.length > 0) {
$("#the_grid").append($("<tr/>").append(events.slice(0, 3)));
}
$("#fake_grid").remove();
});
当我尝试执行此操作时,我的浏览器崩溃,我无法弄明白为什么以及如何解决它。我一直在考虑jQuery没有正确加载或在我的脚本后加载,但我已经检查过FireBug并且所有内容都可以正常工作。我已经尝试用alert()替换所有代码,并且工作正常。我已尝试以几种不同的方式将我的.js包含在子模板 index.html 中,但事实并非如此。也许它与文档准备就绪有关。
如果是其他东西,我无法看到它,这让我非常焦虑。那么,有什么建议可以做些什么呢?我做错了什么?提前谢谢。
答案 0 :(得分:1)
jQuery(document).ready(function() {
var events = $("#fake_grid td");
while(events.length > 0) {
$("#the_grid").append($("<tr/>").append(events.slice(0, 3)));
}
$("#fake_grid").remove();
});
.slice
不具有破坏性。它会返回一个删除了那些的新集。
这意味着你的循环会永远运行,因为.length
永远不会达到零。
这应该可以工作
jQuery(document).ready(function() {
$("#fake_grid td").each(function(i, val) {
$("#the_grid").append($("<tr></tr>").append(this));
});
$("#fake_grid").remove();
});