Może to być bardzo głupie pytanie, ale jestem teraz zdesperowany. Próbuję wykonać funkcję JavaScript, klikając taką kotwicę:
<head>
<script type="text/javascript">
function myFunction() {
alert('It was clicked');
}
Anchor.addEventListener('click', myFunction, false);
</script>
</head>
…
<a href="#" id="Anchor">Click me</a>
Ale to nie działa.
Jednak to działa dobrze:
<a href="javascript:myFunction()" id="Anchor">Click me</a>
A nawet to robi:
<a href="#" onclick="myFunction()" id="Anchor">Click me</a>
Jaki jest właściwy sposób na wyjazd? Co ja robię źle? A jsfiddle na przykład tutaj.
Informacje dodatkowe:
Utworzyłem inne wydarzenia za pomocą tej samej metody, ale w jakiś sposób kotwica jest jedynym, który nie działa. Przykład:
<script type="text/javascript">
function aFunction() {
AnElement.style.display = 'none';
}
window.addEventListener('load', aFunction, false);
</script>
Element jest doskonale ukryty, gdy okno zakończyło ładowanie.
4 odpowiedzi
Problem polega na tym, że umieszczałeś skrypt na sekcji {x0}}. Anchor
nie istnieje zanim skrypt jest wykonywany i dzięki temu otrzymałeś Anchor is not defined
.
Wypróbuj tę zmodyfikowaną wersję, która umieszcza skrypt po definicji HTML.
<a href="#" id="Anchor">Click me</a>
<script>
function myFunction() {
alert('It was clicked');
}
Anchor.addEventListener('click', myFunction, false);
</script>
Kotwica to identyfikator. Pierwszy znak identyfikacyjny powinien być małą literą (id = "kotwica"). Dzięki Document.getElementByid () można zapytać elementy za pomocą swojego identyfikatora.
var domElement = document.getElementById("anchor");
Kiedy używasz jQuery, możesz również użyć poniższych, aby uzyskać element według ID:
$("#anchor")
Powinieneś dodać swoją wiązanie po zdarzeniu obciążenia strony i użyj GetElementByid.
function myFunction() {
alert('It was clicked');
}
window.onload = function () {
document.getElementById('Anchor').addEventListener('click', myFunction, false);
}
Tylko dlatego, że podajesz tag Atrybut ID, taki jak id="Anchor"
nie oznacza, że możesz nazwać go bezpośrednio z JavaScript, jak ty: Anchor.addEventListener('click', myFunction, false);
Właściwie musisz znaleźć element przed wiązaniem wydarzenia.
document.getElementById('Anchor').addEventListener('click', myFunction, false);