dbの変数を変更した後にのみ、2つのサーバー変数をロードする必要があります。特定のイベントの後にのみサーバー変数をロードする方法はありますか?
今は、ページがロードされるとすぐにロードされるため、イベントの前にあった値を保持します(upvotesRef.transaction
)。
$('.HP').text("<%= post.upvotes - post.downvotes %> HP");
CODE:
$('.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");
EDIT:
私は私の問題を解決するために、ローカル変数を作成することになりました。あなたの答えをありがとう!
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を使用しての考えたことがあり:
は、あなたのコールバックは2番目のパラメータとしてすべきですか? – Dez
@Dezどうすればいいですか?私はAJAXであまり経験がありません。私はそれを受け入れることができるように答えとしてAJAXを使用してソリューションを投稿できますか? – Coder1000
ここでnode.jsのjQuery AJAX呼び出しを確認してください:https://stackoverflow.com/questions/5373987/how-to-use-jquery-ajax-calls-with-node-js – Dez