2012-01-05 8 views
0

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

<ul id="menubar"> 

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

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

Как я могу это достичь?

ответ

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)); 
+0

спасибо, попробуем! – Maverick

+0

еще одна вещь ... у меня есть функция onclick с вызовом ajax .. и я использовал onCompletedEvent, так что будет работать ур для этого? – Maverick

+0

Да, он не должен конфликтовать с onclick. –

0

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

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

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

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

+0

в прототипе? – Maverick

+0

О, мой плохой ... это jQuery. Моя рекомендация - выполнить ответ Рональда. – Ken

Смежные вопросы