web-dev-qa-db-fra.com

Comment simuler un lien d'ancrage, cliquez sur

J'essaie de déclencher un lien, cliquez sur .jquery. Est-ce que quelqu'un sait pourquoi ce qui suit ne fonctionne pas?.

<!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="http://google.com" 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>
26
RayLoveless

On dirait que votre sélecteur $("google_link_proxy") est désactivé. Essayez $("#google_link_proxy").

Vous devez également fermer l'appel d'observation avec }).

Ce sont les erreurs de syntaxe avec le code ci-dessus bien que je ne pense pas que ces fonctions soient fournies par défaut dans jQuery. 

Voici ce que je pense que vous recherchez:

$("#google_link_proxy").click(function(event){
    window.open($("#google_link").attr('href'),'_blank')
});
19
Jeff the Bear

La méthode jQuery ignore complètement href:

$('#google_link').click(); // ignores href!

La méthode DOM native fait le bon choix:

$('#google_link')[0].click();

Cela fonctionne que la variable href soit une URL, un fragment (par exemple, #blah) ou même un javascript:.

36
Roman Starkov

Si vous utilisez jQuery et le DOM natif, vous pouvez cliquer sur l'ancre.

// 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();
21
Wandering Zombie

Utilisez click ()

$("#google_link_proxy").click(
    function(){
        $("#google_link").click();
    }
);

fireEvent and observe ne fait pas partie de l'API jQuery

2
epascarello

Assurez-vous que votre code jQuery est placé dans un bloc ready comme suit.

$(document).ready(function(){/* your code here */});

Cela garantit que les scripts sont déclenchés après tout le contenu et les images sont chargés.

2
pixelbobby

Cela peut être fait sans jQuery:

document.querySelector('#google_link').click()
0
Vasfed