javascript - 如果在元素外部单击,则删除类

标签 javascript jquery html css

如果我在 paragraph 元素外单击,我该如何做到这一点,背景颜色就会被移除?请注意,我希望它一次只能突出显示一个 p

$('p').click(function() {
    $('p').removeClass('yellow');
    $(this).addClass('yellow');
});
.yellow {
    background: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Velit tenetur sequi amet sit dolorem, nulla inventore quo cum ad distinctio aut nesciunt reprehenderit dolorum quidem animi unde aspernatur. Esse, eius!</p>
            <p>Deleniti vitae rerum eum saepe eaque tenetur libero, omnis nisi sapiente dicta est repellat, provident placeat quia inventore, at architecto quisquam, pariatur minus quam magni totam praesentium dignissimos. Incidunt, sequi.</p>
            <p>Fuga cupiditate consectetur, corporis architecto, doloremque impedit ullam quia praesentium voluptatibus molestiae dolor sint, odio amet atque culpa fugit blanditiis ea nam repellat necessitatibus. Aliquam voluptate fuga quo, omnis mollitia.</p>
        </div>
    </div>
</div>

最佳答案

这是你想要的:

$('p').click(function(e) { 

$('p').removeClass('yellow'); //If there is any p with class yellow, it removes that
  $(e.target).closest('p').addClass('yellow'); //This find closest target when you click, in our case current paragraph(p)

});
$(document).click(function(e){ //Here is when you click in your entire document
  if($(e.target).closest('p').length==0) { // If click is not paragraph
     $('p').removeClass('yellow');  //It removes this class existed from any paragraph
    }
  

})
.yellow {
  background: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="row">
    <div class="col-md-12"><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Velit tenetur sequi amet sit dolorem, nulla inventore quo cum ad distinctio aut nesciunt reprehenderit dolorum quidem animi unde aspernatur. Esse, eius!</p>
<p>Deleniti vitae rerum eum saepe eaque tenetur libero, omnis nisi sapiente dicta est repellat, provident placeat quia inventore, at architecto quisquam, pariatur minus quam magni totam praesentium dignissimos. Incidunt, sequi.</p>
<p>Fuga cupiditate consectetur, corporis architecto, doloremque impedit ullam quia praesentium voluptatibus molestiae dolor sint, odio amet atque culpa fugit blanditiis ea nam repellat necessitatibus. Aliquam voluptate fuga quo, omnis mollitia.</p></div>
  </div>
</div>

关于javascript - 如果在元素外部单击,则删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978406/

相关文章:

javascript - 使用 GSAP 将副本 SVG 元素插入到 DOM 中

jquery - 图像 slider Div 错误

Javascript 从单击的按钮写入文本区域

html - 在 Blade 模板中的表单标签内使用 <span>

html - Flexbox 布局在 IE 11 中被破坏。前缀不起作用?

javascript - 如何在对象构造函数中使用 Map 数组函数

javascript - 在 jQuery 中使用 ID 更改文本

html - 是否有用于 Delphi 的 CSS3 选择器驱动的文档对象模型 (DOM) API?

Javascript 闭包函数参数?

javascript - 单击同一选项卡时,jquery 切换选项卡隐藏事件类