移除类并在单个元素上添加类
remove class and add class on single element
我有一个由DIV
元素组成的表类型结构
我制作了一个展开/折叠类型列表。
我有一个图标,如果它展开,我想更改它,如果我折叠列表,我想重置它。这两个图标链接到两个类。
$('.rowHead_but i', this ).removeClass('icon-double-angle-down');
和
$('.rowHead_but i', this ).addClass('icon-double-angle-up');
好的,它成功地删除了类并添加了新的类,但它对所有行都这样做。
我只希望this
行受到影响。
我做错了什么?
<div class="notificationDetail"> <div class="header"> <div class="Collapse"> <div class="rowHead1"><span>2014-10-10</span></div> <div class="rowHead_but"><i class="icon-double-angle-down"></i></div> </div> </div> <div class="header"> <div class="Collapse"> <div class="rowHead2"><span>2014-10-10</span></div> <div class="rowHead_but"><i class="icon-double-angle-down"></i></div> </div> </div> <div class="header"> <div class="Collapse"> <div class="rowHead3"><span>2014-10-10</span></div> <div class="rowHead_but"><i class="icon-double-angle-down"></i></div> </div> </div> </div>
JQuery代码
$('.notificationDetail').on('click','.header', function(e){
e.stopPropagation();
$(function() {
var classTst_down = $('.rowHead_but i', this ).hasClass( "icon-double-angle-down" );
var classTst_up = $('.rowHead_but i', this ).hasClass( "icon-double-angle-up" );
if ( classTst_down ) {
console.log('remove down');
$(this ).removeClass('icon-double-angle-down');
console.log('removed');
$(this ).addClass('icon-double-angle-up');
console.log('added');
}
if ( classTst_up ){
console.log('remove up');
$(this ).addClass('icon-double-angle-down');
$(this ).removeClass('icon-double-angle-up');
}
});
});
根据您的理解,您实际上并不想将事件处理程序绑定到.header
容器,而是绑定到单个.Collapse
项。如果是这样的话,如果你使用toggleClass
:,你可以极大地简化你的代码
$('.notificationDetail').on('click', '.Collapse', function (e) {
e.stopPropagation();
$('.rowHead_but i', this).toggleClass('icon-double-angle-down icon-double-angle-up');
});
http://jsfiddle.net/7h1gn4cx/
看起来过于复杂。你为什么需要两节课?-试试这样的东西:
$('.notificationDetail .header').click(function() {
var $el = $(this).find('.rowHead_but i');
$el.toggleClass('icon-double-angle-down');
});
相关文章:
- 使用jquery将单个换行符替换为span元素
- 如何创建具有单个元素或元素数组的数组
- 扩展验证.js并验证单个元素
- <noscript>标记单个元素或类似的东西
- Angularjs元素在一个调用中同时查找select和input-这是单个标记查找的极限
- 单个功能的多个元素
- 如何使用jQuery跟踪单个dom元素上的点击事件,并相应地更新其点击计数器
- 用程序从单个HTML元素中删除CSS样式规则
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- 从单个元素中Jquery关闭事件
- Javascript通过元素,替换表的单个部分
- 将复杂的html/css/js元素添加到单个Wordpress页面中
- 使用D3.js从单个数据点生成多个DOM元素
- 为什么 .data() 适用于一组元素,但不适用于单个元素
- 访问单个 Json 对象中的元素
- 将 CSS 类添加到数组中的单个元素
- 如何将动态追加元素的多个值存储到单个 var 中,然后检索到函数中
- 在 Ext JS 4 上显示/隐藏系列的单个行元素
- 从单个 Div 元素中删除单击事件
- 更改 JS 数组中的单个对象会更改所有元素