$('#accpmenu').on('click', ' > li', function () {
var selected_index = $(this).index();
});
Вот демоверсия: http://jsfiddle.net/w2JZU/
Это связывает обработчик событий с элементами списка в списке #accpmenu
для события click
, которое находит индекс выбранного элемента списка (по сравнению с другими элементами элемента списка).
В сопроводительной записке у вас есть что-то, что выглядит как недопустимый HTML в вашем коде:
$("#accpmenu").append('<li><a href='+ "#" + ' id="a" ">'+ this.textContent +'</a> </li>');
Должен измениться на (обратите внимание на удаленную двойную кавычку после атрибута id):
$("#accpmenu").append('<li><a href='+ "#" + ' id="a">'+ this.textContent +'</a> </li>');
В моем примере выше добавлен обработчик события click
к элементам li
, поскольку легко определить индекс элемента, по которому щелкнули, но вы также можете привязать ссылки в списке:
$('#accpmenu').on('click', 'a', function () {
//this gets the index by finding the first parent list-item element and getting it's index compared do its siblings
var selected_index = $(this).parents('li').eq(0).index();
});
Обратите внимание, что .on()
является новым в jQuery 1.7 и в вышеуказанных случаях заменяет .delegate()
(из более ранних версий).
Вот несколько документов, которые помогут вам объяснить приведенные выше примеры: