Как получить идентификатор элемента click с jQuery
У меня есть следующий html:
<a href="#" id="#1" class="pagerlink" >link</a>
<a href="#" id="#3" class="pagerlink" >link</a>
<a href="#" id="#2" class="pagerlink" >link</a>
/*etc.... */
и следующий jQuery script:
$(document).ready(function() {
var $container = $('.gallery_r').cycle({
fx: 'scrollHorz',
speed: 500,
timeout: 0
});
$('a.pagerlink').click(function() {
var id = $(this).attr('id');
$container.cycle(id);
return false;
});
});
Управление ссылками "pagerlink" относится к слайд-шоу jQuery Cycle. Если я поменяю эту строку:
$container.cycle(id);
для этого
$container.cycle(7);
он работает... (очевидно, только переход на слайд номер 7). Итак, мой вопрос заключается в том, как я могу получить идентификатор щелчка ссылки и передать ее в эту строку?
Спасибо заранее!
Ответы
Ответ 1
Ваши идентификаторы #1
, а cycle
просто хочет передать номер. Вам нужно удалить #
перед вызовом cycle
.
$('a.pagerlink').click(function() {
var id = $(this).attr('id');
$container.cycle(id.replace('#', ''));
return false;
});
Кроме того, идентификаторы не должны содержать символ #
, это недействительно (числовые идентификаторы также недопустимы). Я предлагаю изменить ID на что-то вроде pager_1
.
<a href="#" id="pager_1" class="pagerlink" >link</a>
$('a.pagerlink').click(function() {
var id = $(this).attr('id');
$container.cycle(id.replace('pager_', ''));
return false;
});
Ответ 2
Вам просто нужно удалить хэш с самого начала:
$('a.pagerlink').click(function() {
var id = $(this).attr('id').substring(1);
$container.cycle(id);
return false;
});
Ответ 3
Ваш идентификатор будет передан как # 1, # 2 и т.д. Однако # недействителен в качестве идентификатора (префикс префикса CSS-селекторов С#).
Ответ 4
Во-первых, у вас не может быть только номер для вашего идентификатора, если вы не используете HTML5 DOCTYPE. Во-вторых, вам нужно либо удалить # в каждом идентификаторе, либо заменить его следующим:
$container.cycle(id.replace('#',''));