繁体   English   中英

使用 jQuery 创建后反应

[英]Create post reaction using jQuery

我正在尝试生成具有后审功能的 jQuery 代码。 我要创建的内容如下图所示:

在此处输入图像描述

每次单击时,喜欢和不喜欢按钮都会突出显示。 反应将使用 localStorage 存储在本地。

这是我的 HTML 代码:

<div class="reaction-post" data-id="123456">
      <div class="like" data-title="like">Like</div>
      <div class="dislike" data-title="dislike">Dislike</div>
</div>

这是我的 jQuery 代码:

$(function(){
    $('.reaction-post div').click(function(){
        var lod = $(this).attr('data-title');
        var idr = $('.reaction-post').attr('data-id');       
        localStorage.setItem(idr,lod);
        var ratinghis = localStorage.getItem(idr);
        $('.reaction-post').addClass(ratinghis);     
    });
});

我的问题是单击另一个选项后我不知道如何删除类。

好吧,您可以在“click”处理程序的开头添加类似这样的内容:

$(".reaction-post").removeClass("不喜欢");

这将在单击喜欢/不喜欢按钮时将所有“喜欢”或“不喜欢”class 删除到 your.reaction-post,然后您的脚本会根据单击的按钮应用一个新的。

注意:如果您的页面 (DOM) 上有很多这样的元素(很多喜欢和不喜欢按钮),您可能希望将 class 操作限制为单击的元素。

编辑:您的代码可能如下所示(未经测试,但您明白了):

<script>
$(function(){
    $('.reaction-post div').click(function(){
        var likable_element = $(this).parent(); //the .reaction-post, easier to manager multiple likeable element on the same page
        likable_element.removeClass("dislike like");
        
        var lod = $(this).attr('data-title');
        var idr = likable_element.attr('data-id');       
        localStorage.setItem(idr,lod);
        var ratinghis = localStorage.getItem(idr);
        likable_element.addClass(ratinghis);     
    });
});
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM