为什么我的HTML在“include”中时,JavaScript不起作用?
{% include "abc.html" %}
在Django中,我把我的html放在这里。
现在,我的javascript不管用了。
$(function(){
alert('hi');
$(".div_inside_abc").css("background","#000");
});
我甚至试着把这个javascript放在abc.html的顶部。结果还是不行。
当我这样做的时候:
$(".div_inside_abc").each(function(e){
document.write($(this).attr("data-rel"));
});
我得到了这个:
{{p.grid_image_ur l}}{{p.grid_image_ur l}}{{p.grid_image_ur l}}{{p.grid_image_ur l}}{{p.grid_image_ur l}}{{p.grid_image_ur l}}
这可不正常!感觉就像Django的模板在我“包含”某些东西的时候没有正常渲染。
相关问题:
2 个回答
0
在abc.html文件中,把{{p.grid_image_ur l}}改成{{p.grid_image_url}}。这可能不是全部问题,但这是个不错的开始。这个页面可能出现了一个错误,但你可能看不到具体的错误信息。
4
如果你把JavaScript代码放在HTML里面,它不会执行(或者说这不是有效的HTML)。如果你想这样做,你得把它包裹在一个SCRIPT标签里(不过我不推荐这样做),或者作为DOM1属性。
如果你想让jQuery在加载时运行这个函数,我建议你把它放在一个外部的JavaScript文件里,并确保这个文件在jQuery之后加载,
$(document).ready(function() {
alert('hi');
$(".div_inside_abc").css("background","#000");
});
或者你可以直接把它写在HTML里,像这样,
<script language="javascript">
$(document).ready(function() {
alert('hi');
$(".div_inside_abc").css("background","#000");
});
</script>
在jQuery引入之后。
如果你想让这个函数在任何地方都能被调用,我建议你直接这样调用这个函数(如果你需要作用域的话)
(function(){
alert('hi');
$(".div_inside_abc").css("background","#000");
})();