2010-08-18 3 views
1

Если бы я имел два набора классов, например такJQuery scrollTo энный ребенок

<div class = "link 1"></div> 
<div class = "link 2"></div> 
<div class = "link 3"></div> 
.... 
<div class = "link x"></div> 

и

<div class = "target 1"></div> 
<div class = "target 2"></div> 
<div class = "target 3"></div> 
.... 
<div class = "target x"></div> 

как я могу получить п-й link прокручивать страницу до энной target с помощью JQuery scrollTo ? Классы 1, 2, 3 .... динамически генерируются.

Спасибо.

+1

Когда каждый узел использует другой идентификатор, семантически вы действительно должны использовать 'id', а не' class'. 'class' предназначен для групп элементов, которые имеют сходные свойства. 'id' предназначен для идентификации отдельного узла, что вы делаете с классом. –

+1

Я не согласен ... divs с похожим классом в этом случае имеют сходные свойства. – Topera

+0

да, я знаю, это не «полный» код. он также имеет множество других сгенерированных классов и идентификаторов. – pixeltocode

ответ

2

Вы можете сделать это на основе от .index(), что-то вроде этого:

$("div.link").click(function() { 
    var target = $("div.target").eq($(this).index("div.link")); 
    $.scrollTo(target); 
}); 

Это использует перегрузку .index(selector), чтобы получить которые ссылаются мы выбрали, то он получает один и тот же индекс div.target множества, чтобы найти место назначения используя .eq().

Примечание: если есть другие<div> элементов с классами target или link вам нужно настроить селекторы здесь, так что они только поиском партии вы в противном случае индексы могут быть выключены ,

+0

Блестящий! Благодаря тонну. – pixeltocode