如何正确增加喜欢和不喜欢的人 - javascript

我在每个帖子上都有一个按钮

1)点赞按钮

如果用户已经喜欢了该帖子,则显示“与众不同”按钮

如果用户不喜欢该帖子,则为HTML部分

<a href="javascript:void(0);" id="liker" data-count="0" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Like</a>

如果用户已经喜欢了该帖子

<a href="javascript:void(0);" id="unliker" data-count="1" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Unlike</a>

这是jquery部分,此部分发送类似请求

$(function() {
    $("body").on("click", "#liker", function() {
        var t = $(this).data("id"),
            a = $(this).data("count"),
            f = $(this).data("fpc");
        a++;
        $("#cyli" + f).text(a);
        $(this).attr('id', 'unliker');
        $(this).data('count', a);
        $(this).text('Unlike');
        i = this, $.ajax({
            type: "POST",
            url: "/ajax/liker?io=" + t,
            data: "id=" + t,
            success: function(t) {}
        })
    });
});

下面部分发送不同的请求

$(function() {
    $("body").on("click", "#unliker", function() {
        var t = $(this).data("id"),
            a = $(this).data("count"),
            f = $(this).data("fpc");
        a -= 1;
        $("#cyli" + f).text(a);
        $(this).attr("id", "liker");
        $(this).data('count', a);
        $(this).text("Like");
        i = this, $.ajax({
            type: "POST",
            url: "/ajax/unliker?io=" + t,
            data: "id=" + t,
            success: function(t) {}
        })
    });
});

相似的值显示在此标签<i class="fa fa-thumbs-up" id="cyli481" aria-hidden="true">&nbsp; 0</i>

现在的问题是,当我单击“喜欢”或“不同”时,该值未正确添加或扣除。

例如,如果data-count =“ 0”表示此帖子没有类似内容,但是当我单击它时,它会自动变为2,然后如果我单击不相同的按钮,它就会变成-1,那么上述方法可能是错误的

参考方案

如果您只是将$(this).data("count")$(this).data("count", a)更改为$(this).attr("data-count")$(this).attr("data-count", a),则它会起作用。

试试这个代码:

$(function() {
    $("body").on("click", "#liker", function() {
        var t = $(this).data("id"),
            a = $(this).attr("data-count"),
            f = $(this).data("fpc");
        a++;
        $("#cyli" + f).text(a);
        $(this).attr('id', 'unliker');
        $(this).attr('data-count', a);
        $(this).text('Unlike');
        i = this, $.ajax({
            type: "POST",
            url: "/ajax/liker?io=" + t,
            data: "id=" + t,
            success: function(t) {}
        })
    });
});
$(function() {
    $("body").on("click", "#unliker", function() {
        var t = $(this).data("id"),
            a = $(this).attr("data-count"),
            f = $(this).data("fpc");
        a -= 1;
        $("#cyli" + f).text(a);
        $(this).attr("id", "liker");
        $(this).attr('data-count', a);
        $(this).text("Like");
        i = this, $.ajax({
            type: "POST",
            url: "/ajax/unliker?io=" + t,
            data: "id=" + t,
            success: function(t) {}
        })
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="javascript:void(0);" id="liker" data-count="0" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Like</a>
<i class="fa fa-thumbs-up" id="cyli481" aria-hidden="true">&nbsp; 0</i>

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

从控制器以视图(javascript)访问会话 - javascript

这是我的控制器代码。我想获取视图中存储在会话中的值(JavaScript代码) decimal.TryParse(permotion.PROMOTION_AMOUNT.ToString(), out promotionAmount); int.TryParse(permotion.PROMOTION_TYPE_ID.ToString(CultureInfo.…