【发布时间】:2020-05-19 17:43:24
【问题描述】:
情况:
我正在尝试使用我的 Node.js ejs 模板来实现这个问题的第一个答案(有 25 个赞成票):How can I make an Upvote/Downvote button?。
所以我写了这段代码。
我的密码:
Main.js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$('.UpvoteButton').click(function () {
$(this).toggleClass('on');
});
$('.DownvoteButton').click(function () {
$(this).toggleClass('on');
});
style.css
.UpvoteButton {
display: inline-block;
overflow: hidden;
width: 80px;
height: 50px;
margin-top: 15px;
margin-right: 3px;
cursor: pointer;
background: url('/assets/UpvoteButtonSpriteSheet.png');
background-position: 0 0px;
}
.DownvoteButton {
display: inline-block;
overflow: hidden;
width: 80px;
height: 50px;
margin-top: 15px;
margin-right: 3px;
cursor: pointer;
background: url('/assets/DownvoteButtonSpriteSheet.png');
background-position: 0 0px;
}
.UpvoteButton.on {
background-position: 0 50px;
}
.DownvoteButton.on {
background-position: 0 50px;
}
index.ejs
<% include ../partials/header %>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class ="containerMarginsIndex">
<% for(var i=0; i < fun.length; i++) {%>
<div class="fun">
<h3 class="text-left"><%= fun[i].title %></h3>
<a href="details/<%= fun[i].id %>">
<img class = "postImg" src="/images/uploads/<%= fun[i].image %>">
</a>
<span class="UpvoteButton"> </span><span class="DownvoteButton"> </span>
</div>
<% } %>
</div>
<% include ../partials/footer %>
问题:
单击时没有任何反应。图像保持不变。
问题:
我做错了什么?
【问题讨论】:
-
"with Node.js" - 究竟是什么意思?例如,您正在使用 Express 吗?你能粘贴你的源代码 - 作为浏览器生成和“看到”的源代码吗?
-
jQuery 可通过 NPM 用于 Node.js,但通常您不需要在服务器上使用它(或在客户端上)。网络服务器上没有文档,也没有任何可点击的内容,而且客户端通常没有
require,除非您使用的是 Browserify 或 Webpack。换句话说,你很可能做错了。 -
@adeneo 我正在使用 ejs 来呈现我的页面(正如 index.ejs 所建议的那样)。在我的 index.js 中,我有 2 个包含可点击图像的跨度。如前所述,我正在尝试复制链接答案中的行为。如果我做错了,请告诉我为什么以及如何纠正这种情况:) 谢谢!
-
@marcinrek 这意味着我只使用 npm 模块来呈现我的页面(我正在使用 ejs)。只是想在我的一个 ejs 文件中为 2 个跨度添加一些可点击的功能。 Express 是我正在使用的模块之一,是的。
标签: javascript jquery css node.js