прототип JS библиотека для начинающих - PullRequest
0 голосов
/ 06 января 2012

У меня есть список, в который я динамически добавляю имя класса, теперь, когда я снова нажимаю на этот элемент, класс остается там.Я не хочу, чтобы я хотел, чтобы это имя класса было присвоено текущему элементу списка.

<ul id="menubar">

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

Теперь, когда я нажимаю на один, я динамически добавляю имя класса, а когда я нажимаю на два, имя класса остается неизменным.один, и это также влияет на два.но я хочу, чтобы он был удален из одного и применен к текущему элементу, на который нажали.

Как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 06 января 2012
$$('#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));
0 голосов
/ 06 января 2012

Вы должны включить .removeClass () в то же событие, что и при добавлении класса () к другому.

$('.one').click(function(){
  $(this).addClass('myClass');
  $('.two').removeClass('myClass');
});

Это может быть написано более эффективно, но я пишу это между собраниями.

Надеюсь, это начало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...