我有一个 base.html 模板,该模板由其他模板(即 user_profile.html 页面)继承,如下所示:{% extends "base.html" %}
问题是jquery库仅对 base.html 模板可见。放置在 user_profile.html 模板中的jQuery(document).ready(function())
内的代码无法运行。
如果我在 user_profile.html 模板中放置jQuery库的第二个导入标记,则ready()函数中自己的jQuery运行正常,但 > base.html 看不到自己的jQuery ready()代码(尽管那里也有初始导入标记)。
这就是我使用的:<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
(希望以上所有内容都有道理。)
我做错了什么?
- 编辑 -
这是base.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<head>
<title>{% block title %} {% endblock %}</title>
<!-- remote apis first -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>
<!-- then local -->
<script src="/site_media/js/ui/jquery.ui.core.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
alert('it works!'); //this alert popups normally
});
</script>
{% block external %} {% endblock %}
</head>
<body id="body">
<div id="wrap">
<!-- same stuff for all templates is going on here -->
<div id="content">
<!-- main content area, different for each template-->
<div class="main">
{% block maincontent %} {% endblock %}
</div>
</div>
</div> <!-- wrapper -->
{etc...}
这是user_profile.html
{% extends "base.html" %}
{% load my_tags %}
{% block title %}User Home{% endblock %}
<!-- following block is inside the <head> of the base.html -->
{% block external %}
<link rel="stylesheet" href="/site_media/css/maps.css" type="text/css" media="screen" />
<script type="text/javascript">
jQuery(document).ready(function(){
alert('hi!'); // it is never reached!
});
</script>
{% endblock %}
{% block maincontent %}
<!-- stuff is going on here -->
{% endblock %}
答案 0 :(得分:0)
尝试
$(document).ready
我假设base.html下面有更多内容,即阻止def为maincontent吗?另外,查看firebug,它非常适合调试js和其他Web内容。
答案 1 :(得分:0)
解决了:
似乎如果初始模板的jQuery ready()函数中存在错误(由其他模板扩展的那个),那么其所有子模板的jQuery ready函数()都不会运行。
这是错误 http://www.dynamicdrive.com/forums/showthread.php?t=44999
答案 2 :(得分:0)
在我的情况下,进一步出现错误(未找到对.js文件的调用)。这在dev中不是问题,但是当它转移到生产环境时,在我删除了错误的呼叫之后它就无法工作。