Как имитировать ссылку на привязку
Я пытаюсь вызвать ссылку, нажмите на .jquery. Кто-нибудь знает, почему следующее не работает.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<div>
<a id="google_link" href="#" onclick="location.href='http://google.com'; return false;" target="_blank">click to go to google</a>
</div>
<div id="google_link_proxy">click here to do the same as the link above</div>
<script type="text/javascript">
$("#google_link_proxy").click(function(event){
$("#google_link").click();
});
</script>
</body>
</html>
Ответы
Ответ 1
Похоже, ваш селектор $("google_link_proxy")
выключен. Попробуйте $("#google_link_proxy")
.
Вам также необходимо закрыть вызов наблюдения с помощью })
.
Это синтаксические ошибки с кодом выше, хотя я не думаю, что эти функции предоставляются по умолчанию в jQuery.
Вот что я думаю, что вам нужно:
$("#google_link_proxy").click(function(event){
window.open($("#google_link").attr('href'),'_blank')
});
Ответ 2
Метод jQuery полностью игнорирует href
:
$('#google_link').click(); // ignores href!
Собственный метод DOM делает правильную вещь:
$('#google_link')[0].click();
Это работает независимо от того, является ли href
URL, фрагментом (например, #blah
) или даже javascript:
.
Ответ 3
Если вы используете jQuery и собственный DOM, якорь можно щелкнуть
// insert an <a> into document and click it **natively**
// (.get(0) returns the DOM element)
$('<a id="fred99" />').attr('href', '#david').attr('target', '_blank')
.text('LINK').appendTo('body').get(0).click();
// now we've clicked, tidy up
$('#fred99').remove();
Ответ 4
Используйте click()
$("#google_link_proxy").click(
function(){
$("#google_link").click();
}
);
fireEvent и наблюдать не входят в jQuery API
Ответ 5
Убедитесь, что ваш код jQuery включен в готовый блок, например
$(document).ready(function(){/* your code here */});
Это гарантирует, что скрипты будут запущены после загрузки содержимого и изображений.
Ответ 6
Это можно сделать без jQuery:
document.querySelector('#google_link').click()