GSP页面中的脚本块如下面的代码所示。但是脚本块没有响应。我没有在页面的控制台中打印hello,而是得到了未定义操作符$的错误。原因是什么呢?
getSpecificQuestion.gsp
<html>
<head>
<script>
$('.index').click(function() {
console.log("hello")
});
</script>
<title> Test </title>
</head>
<body>
<div id="question">
<%= "question = $question"%>
</div>
<div id="indexButtons">
<g:each in="${(1..<11)}" var="i">
<input type="button" class="index" value="${i}"/>
</g:each>
</div>
</body>
</html>
显然你的gsp中没有包含任何jquery,所以它抱怨缺少$
确保在脚本块之前在gsp中包含jquery。如果你使用的是资源插件,你可以这样做:
<html>
<head>
<r:require module="jQuery1111"/>
<r:script>
$(function() {
$('.index').click(function() {
console.log("hello")
});
})
</r:script>
<title> Test </title>
</head>
<body>
<div id="question">
<%= "question = $question"%>
</div>
<div id="indexButtons">
<g:each in="${(1..<11)}" var="i">
<input type="button" class="index" value="${i}"/>
</g:each>
</div>
</body>
</html>
在所有DOM元素都被渲染并准备好被脚本操作之后,使用标签将在页面底部呈现javascript。