我有以下内容:
return render_to_response('a.html', {'b': 3}, context_instance=...)
a.html
中的:
{{ b }}
输出3
{% url app.views.something b %}
给了我:
/something/3/
但
<script type="text/javascript">
$(document).ready(function() {
alert('{{ b }}');
});
</script>
弹出一个警告对话框,但是如果您查看来源:
<script type="text/javascript">
$(document).ready(function() {
alert('0');
});
</script>
如果我尝试在其他地方的jquery中使用{{ b }}
它只会让我'0'。
如果我执行以下操作并在弹出窗口到达之前检查源
,则会发生同样的情况<script type="text/javascript">
setTimeout("alert('{{ b }}')",2000);
<script>
弹出窗口显示'3',但消息来源显示'0'。
以前有人有这样的事吗?
修改
我使用HTTP fox来推断这是一个AJAX问题。 Django正在向浏览器返回'3'。
虽然我上面提供的示例代码是过度简化。我基本上做的是使用jquery ajax命令刷新代码所在的div(content_ct的父级)。
$('#ctSelection').change(function() {
if($('#ctSelection option:selected').val()=='1') {
$.get('/company/ct/1/', function(data) {
$('#content_ct').parent().html(data);
});
}
if($('#ctSelection option:selected').val()=='2') {
$.get('/company/ct/2/', function(data) {
$('#content_ct').parent().html(data);
});
}
});
修改
我认为这是由于jquery重叠处理程序并且始终使用堆栈中的第一个