Я пытаюсь вызвать событие щелчка по гиперссылке с помощью jQuery, как показано ниже. У гиперссылки нет идентификатора, но есть класс css
$(document).ready(function () { $('.cssbuttongo').trigger('click'); });
Вышеуказанная функция не работает. Это гиперссылка
<a href="hyperlinkurl" class="cssbuttongo">hyperlink anchor</a>
Ответы:
У меня нет фактических данных, подтверждающих это, но я уже сталкивался с этой проблемой. Кажется, что запуск события click () для
<a>
тега не ведет себя так, как вы ожидаете, скажем, с кнопкой ввода.Обходной путь, который я использовал, заключался в установке свойства location.href в окне, которое заставляет браузер загружать ресурс запроса следующим образом:
$(document).ready(function() { var href = $('.cssbuttongo').attr('href'); window.location.href = href; //causes the browser to refresh and load the requested url }); });
Редактировать:
Я бы сделал скрипку js, но характер вопроса, смешанный с тем, как jsfiddle использует iframe для рендеринга кода, делает это непозволительным.
источник
onclick
событие. Просто сделайте так,$('.cssbuttongo')[0].click()
чтобы правильно имитировать щелчок в целом.Собственный метод DOM поступает правильно:
$('.cssbuttongo')[0].click(); ^ Important!
Это работает независимо от того,
href
является ли это URL-адресом, фрагментом (например#blah
) или дажеjavascript:
.Обратите внимание, что это вызывает
click
метод DOM вместо метода jQueryclick
(который является очень неполным и полностью игнорируетhref
).источник
$('.cssbuttongo').click(); // ignores href!
не гарантирует работы. Последний будет работать всегда, потому что использование index [0] превратит объект jQuery в обычный объект JS, который точно такой же, как в браузере. @Wei LiuВ дополнение к отличному ответу romkyns ... вот несколько соответствующих документов / примеров.
Элементы DOM имеют собственный
.click()
метод .Соответствующая документация W3 .
Несколько примеров ..
Вы можете получить доступ к определенному элементу DOM из объекта jQuery: (пример)
$('a')[0].click();
Вы можете использовать этот
.get()
метод для извлечения элемента DOM из объекта jQuery: (пример)$('a').get(0).click();
Как и ожидалось, вы можете выбрать элемент DOM и вызвать
.click()
метод. (пример)document.querySelector('a').click();
Стоит отметить, что jQuery не требуется для запуска собственного
.click()
события.источник
При инициировании клика через JavaScript гиперссылка не открывается. Это мера безопасности, встроенная в браузер.
Однако см. Этот вопрос для некоторых обходных путей.
источник
[0]
это важно в твоей скрипкеПросто хочу сообщить вам, что принятый ответ не всегда работает.
Вот пример, он потерпит неудачу.
если
<href='/list'>
href = $('css_selector').attr('href') "/list" href = document.querySelector('css_selector').href "http://localhost/list"
или вы можете добавить href, полученный от jQuery, к этому
href = document.URL +$('css_selector').attr('href');
или способ jQuery
href = $('css_selector').prop('href')
Наконец, вызовите его, чтобы изменить URL-адрес текущей страницы браузера.
window.location.href = href
или вытащите его, используя
window.open(url)
Вот пример на JSFiddle.
источник
$('css_selector')[0].click()
? Это работает в этом JsFiddle ...$('.cssbuttongo').click();
, не будет работать, потому что он дает только любое значение href вместо URL-адреса браузер использует. Извините за вводящие в заблуждение комментарии.[0].click()
работает, почему в вашем ответе об этом не упоминается?location.href
принимает относительные пути, поэтому при использовании/list
автоматически добавляется текущий домен. Так что это работает.Я столкнулся с аналогичной проблемой, как нажать кнопку вместо ссылки. Это не помогло в методах .trigger ('click') или [0] .click (), и я не знал почему. Наконец-то у меня работало следующее:
$('#elementid').mousedown();
источник