Если я правильно понимаю, вы хотите, чтобы индекс пункта меню был нажат, чтобы вы могли прокрутить до того элемента, который хранится в объекте jQuery.Затем вы передадите этот элемент в функцию .scrollTo()
, которая получит позицию элемента за вас.Если это так, то:
$('ul').children().bind('click', function () {
var index = $(this).index();
scrollToPosition(section[index]);
});
Это будет нацелено на ваш элемент меню <ul>
, найти его дочерние элементы (при условии, что элементы <li>
являются прямыми дочерними элементами элемента <ul>
), затем связываетОбработчик события click
для элементов <li>
для получения индекса элемента, по которому щелкнули (это проще сделать с элементами <li>
вместо элементов <a>
, поскольку все элементы <li>
находятся на одном уровнеDOM; все они братья и сестры).
Вот документация для .index()
: http://api.jquery.com/index
Также вы должны поставить оператор var
перед вашим position
объявление переменной, поэтому это не глобальная переменная (она все равно будет доступна из обработчика событий document.ready
, единственной части вашего кода, которая обращается к этой информации):
$ (function () {
//Create an Array of section
var section = $('#container .section'),
position = 0, //Start Position, its 0 by default and here is my problem
next = $('.next'),
prev = $('.prev').hide();
Обратите внимание, что объявления переменных разделены запятыми, которые добавят их все в текущую область.