当我将HTML放入“include”时,为什么我的javascript无效?

时间:2010-12-10 02:46:11

标签: javascript jquery python css django

{% 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 :(得分:3)

如果您将JavaScript代码放在HTML中,它将无法执行(或者是有效的HTML)。如果你打算以那种方式(我不建议)或作为DOM1属性,你必须将它包装在 SCRIPT 标签中。

如果你想让jQuery在加载时运行这个函数,我建议你在jQuery之后加载的外部引用的JavaScript文件中这样做,

$(document).ready(function() {
    alert('hi');
    $(".div_inside_abc").css("background","#000");
});

或者将其添加为内联,

<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");

})();

答案 1 :(得分:0)

在abc.html中将{{p.grid_image_ur l}}更改为{{p.grid_image_url}}。可能不是,但是一个好的开始。页面必须抛出由于某种原因您无法看到的错误。