我正在尝试在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);
});
});
答案 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');
});