98 votes

appelez la fonction javascript sur l'hyperlien cliquez sur

Je crée dynamiquement un lien hypertexte dans le code c # derrière le fichier ASP.NET. J'ai besoin d'appeler une fonction JavaScript sur un clic client. Comment puis-je accomplir cela?

142voto

karim79 Points 178055

Encore plus chiche, au lieu des typical href="#" ou href="javascript:void" ou href="whatever" , je pense que cela a beaucoup plus de sens:

 var el = document.getElementById('foo');
el.onclick = showFoo;


function showFoo() {
  alert('I am foo!');
  return false;
}

<a href="no-javascript.html" title="Get some foo!" id="foo">Show me some foo</a>
 

Si Javascript échoue, il y a des commentaires. En outre, le comportement erratique (saut de page dans le cas de href="#" , visite de la même page dans le cas de href="" ) est éliminé.

61voto

Jayden Lawson Points 419

La réponse la plus simple de tous est ...

<a href="javascript:alert('You clicked!')">My link</a>

28voto

amischiefr Points 1799

Avec le paramètre onclick ...

 <a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
 

13voto

elcuco Points 3953

La réponse de JQuery. Depuis que JavaScript a été inventé pour développer JQuery, voici un exemple dans JQuery:

 <div class="menu">
    <a href="http://example.org">Example</a>
    <a href="http://foobar.com">Foobar.com</a>
</div>

<script>
jQuery( 'div.menu a' )
    .click(function() {
    	do_the_click( this.href );
    	return false;
    });

// play the funky music white boy
function do_the_click( url )
{
    alert( url );
}
</script>
 

3voto

Lewis Points 2607

Idéalement, j'aimerais éviter de générer des liens à vous de code derrière tout à fait comme votre code a besoin de recompiler à chaque fois que vous voulez faire un changement à la "majoration" de chacun de ces liens. Si vous avez à le faire, je ne serait pas l'intégration de votre javascript "appels" à l'intérieur de votre code HTML, c'est une mauvaise pratique tout à fait, votre balisage doit décrire votre document pas ce qu'il fait, c'est le travail de votre javascript.

Utiliser une approche où vous avez un code spécifique pour chaque élément (ou la classe si sa fonctionnalité commune), puis utiliser l'Amélioration Progressive, pour ajouter le gestionnaire d'événement(s), quelque chose comme:

[c# example only probably not the way you're writing out your js]
Response.Write("<a href=\"/link/for/javascriptDisabled/Browsers.aspx\" id=\"uxAncMyLink\">My Link</a>");

[Javascript]  
document.getElementById('uxAncMyLink').onclick = function(e){

// do some stuff here

    return false;
    }

De cette façon, votre code ne sera pas de pause pour les utilisateurs avec JS désactivé et il aura une claire séparation des préoccupations.

L'espoir qui est de l'utilisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X