javascript - 第二次单击同一 div 时将文本添加到伪元素

标签 javascript jquery html css

我有一个非常基本的函数,通过向其添加一个类来显示 div onclick:after

我想要实现的是,从第二次点击开始,:after将从“THIS”更改为“AND THIS”

有什么提示吗?
谢谢!

$(document).on("click","#click",function(){$("#logo").addClass("open")});
#click{cursor:pointer}
#logo.open:after{content:" THIS"}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="click">CLICK HERE</div><br>
<div id="logo">SHOT</div>

最佳答案

您可以检查该元素是否具有 .open,如果有,则添加一个新类来覆盖 ::after 内容

var $logo = $('#logo');
$(document).on("click","#click",function(){
  if ($logo.hasClass('open')) {
    $logo.addClass('and');
  } else {
    $logo.addClass('open');
  }
});
#click{cursor:pointer}
#logo.open::after{content:" THIS"}
#logo.and::after{content:" AND THIS"}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="click">CLICK HERE</div><br>
<div id="logo">SHOT</div>

关于javascript - 第二次单击同一 div 时将文本添加到伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112273/

相关文章:

javascript - WordPress wp_enqueue_scripts() 触发 500 内部服务器错误

javascript点击图片显示

html - 在移动屏幕中交换 2 div 的顺序

jquery - 将一个 DIV 滑到另一个 DIV 上

javascript - 为目标 ="_blank"在 HTML 中打开新窗口

javascript - 获取触摸端下的元素

javascript - 如何使用 ES6 在对象数组中查找匹配项

javascript - 防止touchmove触发mousemove?

javascript - 吸收 HTML 元素的宽度

javascript - 计算多种货币格式元素的总和