Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обращение к элементам с одинаковыми id и действия с ними?? (https://javascript.ru/forum/jquery/12645-obrashhenie-k-ehlementam-s-odinakovymi-id-i-dejjstviya-s-nimi.html)

ViktorZ 27.10.2010 15:34

Обращение к элементам с одинаковыми id и действия с ними??
 
Доброго дня!

Есть плагин jQuery Touchwipe Plugin.
Основная функция:

$(document).ready(function() {

$("#imagegallery").touchwipe({
wipeLeft: function() {
$("#imagegallery").cycle("next");
},
wipeRight: function() {
$("#imagegallery").cycle("prev");
}
});

$('#imagegallery').cycle({
timeout: 0,
fx: 'scrollHorz',
next: '#next',
prev: '#prev'
});

});

То есть прокручиваем div с id=imagegallery.
Если я сделаю несколько div'ов с таким id, как мне указать какой из них именно прокручивать?

e1f 27.10.2010 15:36

Используйте класс вместо id.

ksa 27.10.2010 15:40

ViktorZ, использование нескольких элементов с одним ИД не валидно...

ViktorZ 27.10.2010 15:52

Если у меня несколько id будет, то получается под каждый нужна будет своя функция? С классами вы имеете ввиду проверять touchwipe на общем классе и смотреть id. Пробовал, почему-то не могу получить id вызывающего класса...

monolithed 27.10.2010 16:08

ViktorZ

не говорите ерунды, вам же сказали используйте классы, или же инкрементируйте порядковый номер для id.
В конце концов что мешает вам сделать так:
$('#imagegallery1, #imagegallery2').cycle({
     timeout: 0,
     fx: 'scrollHorz',
     next: '#next',
     prev: '#prev'
});


а лучше так:
$('.imagegallery').cycle({
     timeout: 0,
     fx: 'scrollHorz',
     next: '#next',
     prev: '#prev'
});


или так:
$('#imagegallery'+i).cycle({ //i-инкрементрирование
     timeout: 0,
     fx: 'scrollHorz',
     next: '#next',
     prev: '#prev'
});

ViktorZ 27.10.2010 16:08

Получается что вопрос в том, чтобы передать id div'а инициатора в метод...как то так...
$(document).ready(function() {

$("div.class1").touchwipe({
wipeLeft: function() {
$("#id_div_иниц").cycle("next");
},
wipeRight: function() {
$("#id_div_иниц").cycle("prev");
}
});

$('#id_div_иниц').cycle({
timeout: 0,
fx: 'scrollHorz',
next: '#next',
prev: '#prev'
});

});

ViktorZ 27.10.2010 16:22

Не понимаю...

Допустим у меня так..

<div id="g3" class="gallery">
<img>
<img>
<img>
</div>
<div id="g2" class="gallery">
<img>
<img>
<img>
</div>


и таких прокручивающихся блоков может быть очень много.

если следовать вашему первому варианту - не эффективно выписывать все id.

второй не поможет, крутиться будет все...

третий - сводится к моему же вопросу как передать id...

Aetae 27.10.2010 16:30

id - это уникальный идентификатор, лол.
А чтоб эффективно было надо самому писать. Плагин не расчитывался на over9000 дивов. Иначе чем все по очереди не передашь, хотябы элементарно не переписывая.

ViktorZ 27.10.2010 16:34

в крайнем примере они уникальные как раз.


Часовой пояс GMT +3, время: 22:55.