我正在尝试在百万富翁项目中使用外部javascript文件,所以我做了以下事情:
这是文件的声明方式(我把这个放在/ body之前,正如许多其他帖子所建议的那样)
<script type="text/javascript" th:src="@{/resources/lor.js}"></script>
这是html函数调用
<a id="l2" th:href="'javascript:change2();'">
这是js文件
function change1() {
document.getElementById("l1").setAttribute("class", "selected");
document.getElementById("l2").setAttribute("class", "");
};
function change2() {
document.getElementById("l1").setAttribute("class", "");
document.getElementById("l2").setAttribute("class", "selected");
};
然而我从firebug得到以下错误“Uncaught ReferenceError:change2 is not defined”。
我也试过
function change2() {
document.getElementById("l1").className="";
document.getElementById("l2").className="selected";
};
我得到了“Uncaught TypeError:无法设置属性'className'为null”
似乎js文件甚至没有被处理。任何解决方案?
提前致谢
答案 0 :(得分:1)
我建议您在href属性上使用事件处理程序而不是函数调用。 因此,您可以将锚链接更改为:
<a id="l2" href="javascript:void(0);">l2_Link</a>
要添加click事件,您必须使用window.onload事件作为Rooster提议。
window.onload = function (){
document.getElementById ("l2").addEventListener ("click", change2, false);
}
查看相关的工作示例