0

我正在使用 javascript 文件来显示一些按钮。当用户单击按钮时,当前按钮的图像被另一个图像替换(从而产生新按钮代替旧按钮出现的效果),反之亦然。我创建了<img>一个 id='imgbutton' 的元素,并使用这些元素attr('src',newimage)来显示这些按钮。

我将javascript文件放在{{MEDIA_URL}}/js目录中,以便可以使用将文件添加到模板中

<script type="text/javascript"  src="{{MEDIA_URL}}/js/myscript.js" ></script>

在javascript代码(jquery 1.7.1)中,我正在设置这样的图像

..
var btnimg=$('#imgbutton');
btnimg.attr('src','{{MEDIA_URL}}/img/NewImage.png');

这会导致404 error在 javascript 控制台中显示一个占位符而不是图像。在 django 模板中,{{MEDIA_URL}}/img/OldImage.png正确显示..只有在 javascript 中才会出现问题..有人可以帮我弄清楚为什么会发生这种情况吗?我该如何纠正这个问题?

4

1 回答 1

3

你的问题是 JS 文件没有被 Django 的模板引擎处理。当我需要这样做时,我通常会在页面中直接放一小部分 JS 来设置变量值,然后由加载<link>标签的 JS 文件引用。

更新:

是的,你想做这样的事情:

<script>
// first set the value you will be using.
var MEDIA_URL = "{{MEDIA_URL}}"; // and anything else you need to set
</script>

<script type="text/javascript"  src="{{MEDIA_URL}}/js/myscript.js" ></script>

现在您可以在JS 文件中引用该全局值,例如:

btnimg.attr('src',MEDIA_URL+'/img/NewImage.png');

如果有很多这些东西,一个包含所有这些东西的数组或对象可以让你的命名空间保持整洁。

于 2012-04-15T16:09:56.560 回答