0

我正在尝试<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);

    });
});
4

2 回答 2

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 元素。

于 2013-06-07T20:00:40.037 回答
1

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

$("li").click(function() {
    $(this).addClass('choice');
    $(this).siblings().removeClass('choice');
});
于 2013-06-07T19:50:22.423 回答