我有一个列表,我在其中动态添加了类名,现在当我再次点击该项时,该类仍保留在那里。我不希望我希望将该类名分配给当前单击的列表项。
<ul id="menubar">
<li>one</li>
<li>two</li>
</ul>
现在,当我点击一个时,我动态添加了类名,当我点击两个时,类名在一个上保持不变,它也会受到影响。但我希望将其从一个中移除并应用于当前点击的项目。
我怎样才能实现它?
答案 0 :(得分:2)
$$('#menubar li').invoke('observe', 'click', (function(e) {
//removes classname from all the li elements
$$('#menubar li').invoke('removeClassName', 'myClass');
//Gets the li you clicked on
var list_item = Event.element(e);
//adds the classname
list_item.addClassName('myClass');
}).bindAsEventListener(this));
答案 1 :(得分:0)
你需要在与addClass()相同的事件中包含.removeClass()。
$('.one').click(function(){
$(this).addClass('myClass');
$('.two').removeClass('myClass');
});
这可以更有效地编写,但我在会议之间写这篇文章。
希望这是一个开始!