jquery - 如何在css中单击图标时更改颜色

标签 jquery html css ajax

我遇到了在css和jquery中点击心型图标时变色的问题

CSS:

还没有点击图标时

.iconHeartInactive::before {
   content: '\e841';
   color: rgba(71,78,82,.4);
 }

点击图标时:

.iconHeartActive::after{
    content: '\e845';
    color: #ed1b77;
 }

HTML:

<span>
<button class="saveHome hoverPulse pan typeReversed">
    <span class="stackIcons">
        <i class="iconHeartActive iconOnly"></i>
        <i class="iconHeartEmpty typeReversed iconOnly"></i>
    </span>
</button>
</span> 
<script>
   $( "iconHeartInactive" ).click(function() {
   $( this ).toggleClass( "iconHeartActive" );
 });
 </script>

我怎样才能点击图标并改变颜色?非常感谢!

最佳答案

首先:将您的 JS 代码放入准备好的包装器中:

$(document).ready(function(){
  //your code here
});

第二:我们使用 toggleClass 来设置和取消设置对象上的类,因此您有 2 个选项。 1- 更改您的 CSS,因此在默认情况下它会获得您的非事件样式,当单击它时它会获得事件样式。 2- 更改 js 以检查它是否具有事件类,因此根据您决定是否设置其中一个类的声明。

因为您似乎不想更改样式:

<span>
<button class="saveHome hoverPulse pan typeReversed">
    <span class="stackIcons">
        <i class="iconHeartActive chosenHeartIcon iconOnly"></i>
        <i class="iconHeartEmpty typeReversed iconOnly"></i>
    </span>
</button>
</span> 
<script>
    $(document).ready(function(){
       $( ".chosenHeartIcon" ).click(function() {
        if($(this).hasClass('iconHeartActive')) {
            $( this ).removeClass( "iconHeartActive" );
            $( this ).addClass( "iconHeartInactive" );
        } else {
            $( this ).removeClass( "iconHeartInactive" );
            $( this ).addClass( "iconHeartActive" );
        }

     });
 });
 </script>

关于jquery - 如何在css中单击图标时更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095907/

相关文章:

javascript - 单击按钮后获取所有输入字段值。 ( JavaScript )

html - 使用 bootstrap 创建视频横幅

javascript - 右对齐表格标题中图标的下拉菜单

javascript - 如何通过 jQuery 混合使用数字和其他 div 高度来设置 div 的高度?

jquery - Rails 3 - DIV 的定期刷新

jquery - 使用Jquery根据body Id添加/删除类

jquery - 使用 signalR 通过 1 次广播更新多个 View

javascript - 如何使用node.js在服务器端用纯javascript读取JSON文件?

具有商业/服务器许可的 HTML 到 PDF 转换器

html - 有没有办法让 html 列表表现得像这样