从之前的event.target中删除了类

时间:2013-06-07 19:48:00

标签: events target removeclass

我正在尝试在click事件上向<li>元素添加一个类,然后在随后单击同一<ul>中的另一个元素时删除该类。添加课程没问题,但我尝试了很多方法,但没有成功删除课程。

<ul>
  <li  class="show" id="all">All Posts</li>
  <li  class="show" id="user" data-user="7">My Posts</li>
  <li  class="show" id="follow">Following</li>
</ul>

$(document).ready(function() {

$("li").click(function(event) {

    var name = event.target.className;
var newclass = 'choice';
  //console.log(name);

if($(event.target)) {
  $(event.target).addClass(newclass);
  }

if(!$(event.target)) {
  $('li').each(function() {
        $('.' + name + '.' + newclass).removeClass(newclass);
    })
}

$('.'+ name + "." + newclass).attr('style','background-color:yellow');

//console.log(name);

    });
});

2 个答案:

答案 0 :(得分:2)

  

类别:事件对象jQuery的事件系统规范化事件   根据W3C标准的对象。保证事件对象   被传递给事件处理程序。

  

event.target发起事件的DOM元素。

  

jQuery() - 也可以写成$()

jQuery( element ) 
element Type: Element A DOM element to wrap in a jQuery object.

那么$(event.target)怎么会变错呢? event.target是一个包装在jQuery对象中的DOM元素。

答案 1 :(得分:1)

如果我正确理解您的问题,您只需要.siblings()

$("li").click(function() {
    $(this).addClass('choice');
    $(this).siblings().removeClass('choice');
});