2010-10-03 7 views
1

J'essaie d'envoyer l'utilisateur à google ou yahoo en fonction du lien sur lequel ils ont cliqué, s'ils ont cliqué sur le premier, ils seront pris à google, et s'ils ont cliqué sur le seond, ils seront pris à yahoo. Donc, pour la fonction window.location, j'utilise une variable appelée site web que je définis en fonction du lien sur lequel l'utilisateur a cliqué. Mais ça ne marche pas. La variable n'est pas reconnu:Pourquoi ce simple jQuery ne fonctionne-t-il pas?

<script type="text/javascript"> 
    $(document).ready(function(){ 

     // define the variable website based on which link is clicked 
     $('a').eq(0).click(function() { 
      var website = 'http://google.com'; 
     }); 
     $('a').eq(1).click(function() { 
      var website = 'http://yahoo.com'; 
     }); 

     $('a').click(function() { 
      window.location = website; 
     }); 

    }); 
</script> 

<a href="#">Link 1</a> 
<br /> 
<a href="#">Link 2</a> 

Répondre

0
<script type="text/javascript"> 

    var _website = null; 

    $(document).ready(function() 
    { 
     $('a').eq(0).click(function() 
     { 
      _website = 'http://google.com'; 
      Navigate(); 
     }); 

     $('a').eq(1).click(function() 
     { 
      _website = 'http://yahoo.com'; 
      Navigate(); 
     }); 
    }); 

    function Navigate() 
    { 
     document.location = _website; 
    } 

</script> 

<a id="link1" href="#">Link 1</a> 
<br /> 
<a id="link2" href="#">Link 2</a> 
+0

Après avoir déclaré en dehors des délégués clic il est maintenant recorgnozed mais arrête l'exécution du script après avoir détecté le premier clic. En d'autres termes, il ne descend pas à la fonction window.location. Juste s'arrête après l'un des liens ci-dessus cliquez sur les fonctions. Donc, le problème de la variable est résolu, mais comment laisser le script continuer à s'exécuter tout le long de la fonction window.location. Un peu difficile à expliquer mais vous verrez ce que je veux dire si vous l'exécutez. – Dan

+0

@Dan - oui, je le cours maintenant pour vous donner une réponse complète. –

+0

J'aurais dû expliquer, les 2 liens et aller à yahoo ou google n'est pas vraiment ce que j'essaye de faire, je viens d'utiliser cet exemple pour illustrer ce dont j'avais besoin, qui est d'utiliser une fonction avec une variable à l'intérieur, et La variable serait définie en fonction du lien indexé sur lequel on clique. J'ai besoin de cette méthode particulière pour travailler spécifiquement. Je sais, l'exemple ci-dessus peut être réalisé d'une manière beaucoup plus facile comme la façon dont vous avez posté, mais j'ai besoin de cet indice/variable/variable défini par quel lien est cliqué façon de travailler. – Dan

1

Plus de meilleure façon de le faire -

<script type="text/javascript"> 
    $(document).ready(function(){ 
    var website = ''; 
    $('a').click(function() { 
    var clicked = $(this).index('a'); 
    switch(clicked){ 
    case 0: 
    website = "http://google.com"; 
    break; 

    case 1: 
    website = "http://rediff.com"; 
    break;   
    } 
    document.location= website; 

    }); 
    }); 
</script> 

<a href="#">Link 1</a> 
<br /> 
<a href="#">Link 2</a> 
+0

selon cette question, je viens de demander, eq peut être utilisé de la façon dont vous avez mentionné et la façon dont je l'utilisais, les deux fonctionnent: http://stackoverflow.com/questions/3848238/how-to-detect-the-2nd- link-on-a-page-using-jquery – Dan

+0

J'ai écrit mon code de manière plus efficace. – Alpesh

0
<a id="link1" href="http://google.com">Link 1</a> 
<br /> 
<a id="link2" href="http://yahoo.com">Link 2</a> 
Questions connexes