胸里叶:外部js文件

thymeleaf:external js file

本文关键字:js 文件 外部      更新时间:2023-09-26

我试图使用一个外部javascript文件在一个thyymeleaf项目,所以我做了以下工作:

这是文件声明的方式(我把它放在/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");
};

然而我得到以下错误"Uncaught ReferenceError: change2 is not defined"从firebug。

i've also tried

function change2() {
document.getElementById("l1").className="";
document.getElementById("l2").className="selected";
};

和我得到"未捕获的类型错误:不能设置属性'className'为null"

似乎js文件甚至没有被处理。有解决方案吗?

thanks in advance

我建议您在href属性上使用事件处理程序而不是函数调用。所以你可以把你的锚链接改成:

<a id="l2" href="javascript:void(0);">l2_Link</a>

要添加单击事件,必须使用窗口。按Rooster的建议onload事件。

window.onload = function (){
    document.getElementById ("l2").addEventListener ("click", change2, false);
}

您可以在以下网址查看工作示例:http://jsfiddle.net/RKSZ2/1/