原型js库初学者

时间:2012-01-05 22:21:30

标签: javascript ajax dom prototypejs

我有一个列表,我在其中动态添加了类名,现在当我再次点击该项时,该类仍保留在那里。我不希望我希望将该类名分配给当前单击的列表项。

<ul id="menubar">

<li>one</li>
<li>two</li>
</ul>

现在,当我点击一个时,我动态添加了类名,当我点击两个时,类名在一个上保持不变,它也会受到影响。但我希望将其从一个中移除并应用于当前点击的项目。

我怎样才能实现它?

2 个答案:

答案 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');
});

这可以更有效地编写,但我在会议之间写这篇文章。

希望这是一个开始!