添加和删除类jQuery
Add and remove classes jQuery
我正在显示一个新闻帖子的预览,当用户点击阅读更多(或者实际上是整个div)时,它应该以全屏的方式打开。确实如此。但是当我试图关闭它,它不工作。好像它不想再移除这个类了。
TL;博士:第二个函数的on click事件没有执行。
下面是我的代码:
/* NEWS */
$('.news-entry').on('click', function() {
$(this).addClass('open');
$(this).find('.close-btn').addClass('display-close-btn');
$(this).find('.news-all-text').addClass('display-all-text');
$(this).find('.news-text').removeClass('news-read-more');
$('html, body').animate({
scrollTop: $(this).find(".scrollTo").offset().top - 20
}, 600);
});
/* NEWS CLOSE BTN */
$('.close-btn').on('click', function() {
$('.news-entry').removeClass('open');
$('.close-btn').removeClass('display-close-btn');
$('.news-full-text').removeClass('display-full-text');
$('.news-text').addClass('news-read-more-btn');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="section-news">
<div class="news-entry">
<div class="news-image">
<div class="entry-number">25</div>
<div class="horizontal-hr"></div>
<img src="img/news/2.png" />
<div class="close-btn">
<button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<div class="news-text scrollTo">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Doers is Looking For a New Junior Designer</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum
necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</p>
<p class="news-read-more">Read More</p>
</div>
</div>
<div class="news-entry">
<div class="news-image">
<div class="entry-number">24</div>
<div class="horizontal-hr"></div>
<img src="img/news/1.png" />
<div class="close-btn">
<button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<div class="news-text scrollTo">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Say ‘Hi’ to Our New Intern</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum
necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum
necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</p>
<p class="news-read-more">Read More</p>
</div>
</div>
<div class="news-entry">
<div class="news-image">
<div class="entry-number">23</div>
<div class="horizontal-hr"></div>
<img src="img/news/3.png" />
<div class="close-btn">
<button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<div class="news-text scrollTo">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Winter Holiday - What's Your Top Wish?</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis.
<p class="news-read-more">Read More</p>
</div>
</div>
</div>
<!-- END JOURNAL ENTRIES -->
当我检查它时,我可以看到。news-entry发生了一些事情(它闪烁?)
怎么了?
你的问题:。close-btn在.news-entry中。当你点击关闭按钮,在调用关闭按钮点击功能之后它也会调用new entry点击功能。解决方法:移动。close-btn在之外。news-entry或使用返回false关闭按钮点击功能
你可以在这里尝试这个演示链接.更新脚本…
/* NEWS CLOSE BTN */
$('.close-btn').on('click', function() {
$('.news-entry').removeClass('open');
$('.close-btn').removeClass('display-close-btn');
$('.news-full-text').removeClass('display-full-text');
$('.news-text').addClass('news-read-more-btn');
return false; // add this line.
});
有了这些我不能帮助你的小信息,考虑对你的代码做一个小的jsfiddle来找到问题。
但是这里有一些调试的步骤:
- 检查控制台上的错误:你可能有语法错误,控制台的输出将显示。
- 确认关闭按钮点击事件正在触发:向该功能添加console.log并查看它是否实际触发。如果没有触发,请检查类选择器和标记,以确保单击没有发生在按钮顶部的另一个元素上。 手动从元素中删除类(使用浏览器中的检查器工具),看看这是否为您提供了预期的结果。有一个机会,代码正在执行,类被删除/添加,但结果不是预期的。
基本熟悉web调试工具,特别是控制台。
<div id="section-news">
<!--add id-->
<div class="news-entry" id="news-entry_1">
<div class="news-image">
<div class="entry-number">25</div>
<div class="horizontal-hr"></div>
<img src="img/news/2.png" />
<div class="close-btn" id="close-btn_1"><button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<!--add id-->
<div class="news-text scrollTo" id="news-text_1">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Doers is Looking For a New Junior Designer</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />
Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</p>
<p class="news-read-more">Read More</p>
</div>
</div>
<!--add id-->
<div class="news-entry" id="news-entry_2">
<div class="news-image">
<div class="entry-number">24</div>
<div class="horizontal-hr"></div>
<img src="img/news/1.png" />
<div class="close-btn" id="close-btn_2"><button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<div class="news-text scrollTo" id="news-text_2">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Say ‘Hi’ to Our New Intern</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />
Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
<br />
Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</p>
<p class="news-read-more">Read More</p>
</div>
</div>
<div class="news-entry" id="news-entry_3">
<div class="news-image">
<div class="entry-number">23</div>
<div class="horizontal-hr"></div>
<img src="img/news/3.png" />
<div class="close-btn" id="close-btn_3"><button class="circle scaleUp" data-animation="scaleDown" data-remove="3000"></button>
</div>
</div>
<div class="news-text scrollTo" id="news-text_3">
<p class="news-small-title">Doers - News</p>
<h2 class="news-title">Winter Holiday - What's Your Top Wish?</h2>
<hr class="news-hr"></hr>
<p class="news-teaser-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
<p class="news-all-text">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis.
<p class="news-read-more">Read More</p>
</div>
</div>
</div>
<script>
$('.close-btn').on('click', function() {
//get id for the close button
var index=$(this).attr("id");
var idIndex=index.split("_")
//remove class using id
$('#news-entry_'+idIndex[1]).removeClass('open'); //check if id is getting fetched prperly
$('#close-btn_'+idIndex[1]).removeClass('display-close-btn');
$('#news-full-text_'+idIndex[1]).removeClass('display-full-text');
$('#news-text_'+idIndex[1]).addClass('news-read-more-btn');
});
</script>
相关文章:
- Jquery删除图像
- 使用jquery删除输入框上的外部处理程序/库
- jQuery 2.1 |删除重复子字符串的源子字符串
- Javascript/JQuery删除代码中的父TR问题
- 使用jQuery删除动态创建的元素上的mouseenter事件
- Jquery删除上面的br标记
- Jquery-删除单选按钮
- JQuery.删除DOM树中的上一个同级
- 使用jQuery删除部分URL
- 使用jquery删除href中的特定字符或标记
- 使用jquery删除包含的行
- 如何使用Jquery删除伪元素
- Jquery删除除粗体之外的所有内容
- jquery .删除整个 li 或 table 元素后
- 使用JQuery删除禁用的属性
- Javascript/Jquery删除和添加'onmouseover'setinterval上的事件
- 如何使用jQuery删除具有一定效果的css类
- 使用jquery删除td类
- 使用jQuery删除两个类
- 如何使用jquery删除元素