jquery index()

12
C
На сайте с 04.02.2005
Offline
277
1296

Столкнулся с такой штукой


$('#clients-links a').bind('click', function() {
var index = $(this).index();
get_client_description (index);
return false;
});
$('#mycarousel2 a').bind('click', function() {
var index = $(this).index();
get_client_description (index);
return false;
});

первая часть кода работает безукоризненно, в функцию предается index


<div id="clients-links"><a ...></a><a ...></a><a ...></a><a ...></a>
</div>

Вторая часть - не работает - index = 0

<ul id="mycarousel2">

<li><a ...><img /></a></li>
<li><a ...><img /></a></li>
<li><a ...><img /></a></li>

Может я не понял что возвращает index();

по моему мнению он должен возвращать индекс в списке объектов

Вышел из положения следующим кодом


$('#mycarousel2 a').each(function(index){
$(this).click(function() {
get_client_description (index);
return false;
});
});
bums
На сайте с 03.07.2006
Offline
442
#1

все потому что ссылки вложены в LI и index возвращается именно для LI, для каждого отдельно

index если ничего не найдено вернет "-1"

$('#mycarousel2 li').bind('click', function() {
м.б так подойдет?
Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.
DiAksID
На сайте с 02.08.2008
Offline
218
#2

.index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.

в первом случае несколько <a> прямые потомки одного родителя <div>

во втором случае у Вас в каждом <li> по одному потомку <a> (у всех index = 0)

show must go on !!!...
G
На сайте с 05.02.2012
Offline
73
#3
bums:
все потому что ссылки вложены в LI и index возвращается именно для LI, для каждого отдельно
index если ничего не найдено вернет "-1"

$('#mycarousel2 li').bind('click', function() {
м.б так подойдет?

Нифига подобного. Там указано, что это элементы <A>. Разве что напутали со стилями, и они не от ссылки.

---------- Добавлено 07.05.2012 в 00:10 ----------

DiAksID:
в первом случае несколько <a> прямые потомки одного родителя <div>

во втором случае у Вас в каждом <li> по одному потомку <a> (у всех index = 0)

Ну вот, потому и цикл понадобился. Хотя и впрямь интересно, можно ли это без цикла организовать...

Карамба!
DiAksID
На сайте с 02.08.2008
Offline
218
#4
gterkin:
Ну вот, потому и цикл понадобился. Хотя и впрямь интересно, можно ли это без цикла организовать...

в первом случае у вас список тегов-братьев, во втором по одному тегу - порядковый номер однозначно 0.

вероятно во втором случае вам просто нужен порядковый номер не <a> а <li>

bums
На сайте с 03.07.2006
Offline
442
#5
gterkin:
Нифига подобного

И чойто нифига? :)

Работает между прочим. И будет работать если в каждом LI по ссылке

DiAksID:
хотя может быть во втором случае вам просто нужен порядковый номер не <a> а <li>

о чем я и говорил

DiAksID
На сайте с 02.08.2008
Offline
218
#6
bums:
... о чем я и говорил

+1 только сейчас заметил ;)

G
На сайте с 05.02.2012
Offline
73
#7
bums:
И чойто нифига? :)
Работает между прочим. И будет работать если в каждом LI по ссылке

Дык оно то работать чай то будет, отчего же не работать. Но дело мастера боится. А "мастер срет сам" читается в обе стороны одинаково. "А в какую правильно?", вопрось однако........ :)

Это я вчера почему злой был - заснуть не мог. А сегодня злой, потому что встал рано.

C
На сайте с 04.02.2005
Offline
277
#8

Конструкцию "sibling elements" я понимал как порядковый номер в коллекции. К сожалению на офсайте в приведены "элементарнейшие" примеры, которые не раскрывают сути.

Но спасибо, всем за дискуссию.

dkameleon
На сайте с 09.12.2005
Offline
386
#9
Chukcha:
var index = $(this).index();

можете во втором случае тут подняться до парента.

Дизайн интерьера (http://balabukha.com/)
C
На сайте с 04.02.2005
Offline
277
#10
dkameleon:
можете во втором случае тут подняться до парента.

А смысл? решение есть и оно приведено.

Т.е. теперь понятен смысл index().

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий