Подтвердить что ты не робот

Как имитировать ссылку на привязку

Я пытаюсь вызвать ссылку, нажмите на .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>
4b9b3361

Ответ 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()