Как я могу получить, какое событие nth-child нажмите с MooTools

Например, у меня есть следующий код:

<ul id="agregator-menu">
    <li class="agregator-menu-item"><a href="">News</a></li>
    <li class="agregator-menu-item"><a href="">Reviews</a></li>
    <li class="agregator-menu-item"><a href="">Videos</a></li>
</ul>

Есть ли способ, как я могу получить nth-child (1 или 2 или 3) с Mootools в событии click?

РЕДАКТИРОВАТЬ: я прошу прощения за неправильный вопрос. Может быть, этот код поможет.

<script type="text/javascript">
    var items = $$('.agregator-menu-item a');
    (items).addEvent('click', function(event) {
        /*here how i can get number of position agregator-menu-item (this) in 
          #agregator-menu  which user clicked 
        */      
    });
</script>

2 ответа

Пожалуйста, смотрите следующий код (также на http://jsfiddle.net/6p5y8vbn/)

HTML:

<div id="buttons">
    <button>Button 1</button>
    <button>Button 2</button>
    <button>Button 3</button>
    <button>Button 4</button>
</div>

JS:

var btns = $('buttons').getElements('button');

Array.each(btns, function(btn) {
    btn.addEvent('click', function() {
        console.log(btns.indexOf(this));
    });
});

btns.indexOf(this) покажет, каков индекс нажатого элемента в массиве кнопок. Обратите внимание, что индексы массива начинаются с 0, поэтому первая нажатая кнопка вернет 0, вторая кнопка 1 и т. Д.

Я хочу показать contentitems с тем же индексом, что и menuitems по щелчку

результат:

var menuitems = $$('.agregator-menu-item a');
var contentitems = $$('.agregator-item');

(menuitems).each( function(el, index) {
    el.addEvent('click', function(event) {
        event.stop();
        event.stopPropagation();
        contentitems.setStyle('display', 'none');
        contentitems[index].setStyle('display', 'block');   
    });
});
Другие вопросы по тегам