Как я могу получить, какое событие 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');
});
});