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.

2
arielnmz 13 sierpień 2014, 00:30

4 odpowiedzi

Najlepsza odpowiedź

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.

PRÓBNY

<a href="#" id="Anchor">Click me</a>
<script>
    function myFunction() {
        alert('It was clicked');
    }
    Anchor.addEventListener('click', myFunction, false);
</script>
10
Claudio Redi 12 sierpień 2014, 20:36

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")

-1
Andreas Zock 12 sierpień 2014, 22:11

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);
}
5
Callebe 12 sierpień 2014, 20:36

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);
3
Brennan 12 sierpień 2014, 20:40