Chciałbym zapytać o tag HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Jak zrobić to tag pracy z href i onClick ? (wolę onClick działa najpierw, a następnie href)
Chciałbym zapytać o tag HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Jak zrobić to tag pracy z href i onClick ? (wolę onClick działa najpierw, a następnie href)
Odpowiedzi:
Masz już to, czego potrzebujesz, z niewielką zmianą składni:
<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>
Domyślnym zachowaniem <a>
tagu onclick
i href
właściwości jest wykonanie onclick
, a następnie podążanie href
za nim, dopóki onclick
nie zwróci false
, anulując zdarzenie (lub zdarzenie nie zostało zablokowane)
href="#"
tam prawdziwego adresu URL.
Użyj jQuery . Musisz uchwycić click
wydarzenie, a następnie przejść do witryny internetowej.
$("#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>
href
atrybut.
Aby to osiągnąć, użyj następującego html:
<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>
Oto działający przykład .
<a href="http://example.com" >Item</a>
aw Chrome widzę komunikat, aby zezwolić stronie na uruchomienie tego linku (alert na końcu paska chrome url). W safari w konsoli widzę ostrzeżenie: [zablokowano] Strona pod adresem fiddle.jshell.net/_display nie mogła wyświetlać niezabezpieczonych treści z example.com - więc prawdopodobnie jest to problem z bezpieczeństwem (tylko na skrzypcach?)
Nie potrzeba jQuery.
Niektórzy mówią, że używanie onclick
jest złą praktyką ...
W tym przykładzie zastosowano czysty javascript przeglądarki. Domyślnie wydaje się, że moduł obsługi kliknięć oceni przed nawigacją, więc możesz anulować nawigację i zrobić własną, jeśli chcesz.
<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>
Użyj ng-click
zamiast onclick
. i to takie proste:
<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>