当类添加了类时,jQuery会做一些事情

时间:2011-11-14 20:37:20

标签: jquery show each attr

我有li类“tab3”。其他地方有jQuery,当你将鼠标悬停在它上面时它会添加“已选择”类。发生这种情况时我想做点什么:

<li class='tab3 selected'>
  <div class='showme'>Show this</div>
  <div class='addattr'>Add attributes</div>
</li>

$('.tab3.selected').each(function() {
    $('.showme').show();
    $('.addattr').attr('style', 'position:relative; display:block');
});

2 个答案:

答案 0 :(得分:3)

没有内置的方法可以做到这一点,但你总是可以为“自定义”事件注册一个事件处理程序,比如“类更改”,然后在更新元素的类时触发它。 (您甚至可以重新定义“addClass”函数来执行此操作。)

$('whatever').addClass('selected').trigger('class-change');

// ...

$('.tab3').bind('class-change', function() {
  $('.tab3.selected').each(function() {
    $('.showme').show();
    $('.addattr').attr('style', 'position:relative; display:block');
  });
});

当然,你应该考虑使用普通的旧CSS规则在添加/删除类时改变外观,如@Brad Wedell的回答中所述。

答案 1 :(得分:2)

您可以通过css:

完成此操作
<style type="text/css">
    .tab3 .showme{display:none;}
    .tab3.selected .showme{display:block;}
</style>