152 votes

Balise HTML <a> je veux ajouter à la fois href et onclick qui fonctionnent.

J'aimerais poser une question sur la balise HTML

<a href="www.mysite.com" onClick="javascript.function();">Item</a>

Comment faire a tag travaillant avec href y onClick ? (je préfère que l'onClick soit exécuté en premier puis le href)

271voto

Ian Points 23712

Vous avez déjà ce dont vous avez besoin, avec un changement mineur de syntaxe :

<a href="www.mysite.com" onclick="return theFunction();">Item</a>

<script type="text/javascript">
    function theFunction () {
        // return true or false, depending on whether you want to allow the `href` property to follow through or not
    }
</script>

Le comportement par défaut de la <a> de l'étiquette onclick y href est d'exécuter le onclick puis suivez les href tant que le onclick ne renvoie pas false l'annulation de l'événement (ou l'événement n'a pas été empêché)

11voto

Sudipta Chatterjee Points 1396

Utilisez jQuery . Vous devez capturer le click et ensuite aller sur le site web.

$("#myHref").on('click', function() {
  alert("inside onclick");
  window.location = "http://www.google.com";
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>

8voto

Kamil Kiełczewski Points 6496

Pour ce faire, utilisez le code html suivant :

<a href="www.mysite.com" onclick="make(event)">Item</a>

<script>
    function make(e) {
        // ...  your function code
        // e.preventDefault();   // use this to NOT go to href site
    }
</script>

Aquí está exemple de travail .

6voto

TeamDman Points 177

Pas besoin de jQuery.

Certaines personnes disent qu'utiliser onclick est une mauvaise pratique...

Cet exemple utilise le javascript pur du navigateur. Par défaut, il semble que le gestionnaire de clics sera évalué avant la navigation, vous pouvez donc annuler la navigation et faire la vôtre si vous le souhaitez.

<a id="myButton" href="http://google.com">Click me!</a>
<script>
    window.addEventListener("load", () => {
        document.querySelector("#myButton").addEventListener("click", e => {
            alert("Clicked!");
            // Can also cancel the event and manually navigate
            // e.preventDefault();
            // window.location = e.target.href;
        });
    });
</script>

-5voto

mak-273 Points 52

Utilisez ng-click à la place de onclick . et c'est aussi simple que cela :

<a href="www.mysite.com" ng-click="return theFunction();">Item</a>

<script type="text/javascript">
function theFunction () {
    // return true or false, depending on whether you want to allow 
    // the`href` property to follow through or not
 }
</script>

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