jQuery 通过单击不同的 div 向 div 添加和删除类

标签 jquery html css

我对编程(尤其是 Javascript 和 jQuery)相当陌生,但我觉得必须有一个简单的方法来解决我的问题:
我正在开发一个类似博客的东西,其中有一个又一个出现的不同条目。单击一个条目时,我想显示一些内容(h2,p),并仅更改该条目的背景。我通过添加“可读”类并更改这些元素的不透明度来做到这一点。
现在,如果我使用:

$(function() {
    $(".entry").click(function() {
        $("this").toggleClass('readable');
    });
});

它几乎满足了我的要求。除了当我单击“分隔符”时我只想删除条目类上的“可读”。这是我想要完成的任务(显然它是有缺陷的):

http://jsfiddle.net/Lkb2z06v/

我正在努力学习这些东西,所以我很感谢您的帮助!

编辑!!!
抱歉,我没有正确解释这一点。分隔符最初是隐藏的。但是,当您单击条目上的任何位置时,内容就会显示(包括分隔符)。然后,只有当您单击分隔符时,内容才会再次消失。
我希望这能够清楚地表明这一点。更新 fiddle :http://jsfiddle.net/9zd1fepg/

HTML:

<div class="entry">
    <h1>From Arctic to Atlantic</h1>
    <h2>A cold, rainy stop on a misty island</h2>
    <h3><em>10th</em> of June, 2014 - <em>Reykjavik</em>, Iceland</h3>
     <div class="seperator">
         <img src="Design/Seperator_01.svg">
     </div>
                         <p>Random projections have recently emerged as a powerful method for dimensionality reduction. <a href="#">Theoretical</a> results indicate not much. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis magna eu ultricies laoreet? Pellentesque tempus ornare nisi; quis dictum tortor dapibus id.</p>
</div>
<div class="entry">
    <h1>From Arctic to Atlantic</h1>
    <h2>A cold, rainy stop on a misty island</h2>
    <h3><em>10th</em> of June, 2014 - <em>Reykjavik</em>, Iceland</h3>
     <div class="seperator">
         <img src="Design/Seperator_01.svg">
     </div>
                         <p>Random projections have recently emerged as a powerful method for dimensionality reduction. <a href="#">Theoretical</a> results indicate not much. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis magna eu ultricies laoreet? Pellentesque tempus ornare nisi; quis dictum tortor dapibus id.</p>
</div>

CSS:

.entry {
    background: grey;
}
.entry.readable {
    background: #c6c6c6;
}
.seperator {
    height: 20px;
    width: 150px;
    background-color: red;
}

.entry p {
    opacity: 0;
}

.entry.readable p {
    opacity: 1;
}
.entry h2 {
    opacity: 0;
}
.entry.readable h2 {
    opacity: 1;
}

JS:

$(function() {
    $(".entry").click(function() {
        $(this).addClass('readable');
    });
});

$(function() {
    $(".seperator").click(function() {
        $(".entry").removeClass('readable');
    });
});

最佳答案

如果您希望分隔符始终删除该类而不是切换它(您的 fiddle 看起来正在尝试这样做)。请尝试以下操作:

$(".seperator").click(function() {
    $(this).closest(".entry").removeClass('readable');
    return false;
});

返回 false 可防止事件冒泡并触发其他 $(".entry").click 事件。

关于jQuery 通过单击不同的 div 向 div 添加和删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25382982/

相关文章:

jQuery .each 和 div 的高度

javascript - 单页网站的后台 react 导航 - 工作脚本

javascript - 如何用 jQuery 选择每第 n 个字符的父元素?

css - 如何覆盖 AMP 页面中的内联样式?

javascript - 点击展开 FLOT 图

jquery - 在jQuery事件中控制 'this'的值

php从html表修改数据库通过复选框选择

performance - HTML 5 Canvas 性能

javascript - 将多个库合并为一个库时无法使用库函数

javascript - 多个 svg 在 Canvas 上分层,让 svg 可移动和调整大小