【发布时间】:2017-03-19 14:13:11
【问题描述】:
只有在 db 中的 var 更改后才需要加载两个服务器变量。
现在,它们会在页面加载后立即加载,因此保持事件发生前的值 (upvotesRef.transaction)。
$('.HP').text("<%= post.upvotes - post.downvotes %> HP");
代码:
$('.UpvoteButton').click(function () {
var $this = $(this);
if ($this.hasClass("on")) {
$this.removeClass("on");
upvotesRef.transaction(function (upvotes) {
if (!upvotes) {
upvotes = 0;
}
upvotes = upvotes - 1;
return upvotes;
});
userRef.remove();
$('.HP').text("<%= post.upvotes - post.downvotes %> HP");
编辑:
我最终创建了局部变量来解决我的问题。谢谢你的回答!
var upvotesLocal = <%= post.upvotes %>;
var downvotesLocal = <%= post.downvotes %>;
$('.UpvoteButton').click(function () {
var $this = $(this);
if ($this.hasClass("on")) {
$this.removeClass("on");
upvotesRef.transaction(function (upvotes) {
if (!upvotes) {
upvotes = 0;
}
upvotes = upvotes - 1;
return upvotes;
});
upvotesLocal = upvotesLocal -1
userRef.remove();
$('.HP').text((upvotesLocal - downvotesLocal) + " HP")
【问题讨论】:
-
您有没有想过使用 AJAX 来更新变量?
-
@Dez 我该怎么做?我在 AJAX 方面不是很有经验。您能否发布使用 AJAX 作为答案的解决方案,以便我接受?
-
在此处检查 jQuery AJAX 对 node.js 的调用:stackoverflow.com/questions/5373987/…,除了我提供的答案。
标签: javascript jquery node.js