2016-06-04 14 views
0

Wie erstelle ich dynamisch eine onclick-Funktion in einem Hyperlink in Javascript?Dynamisch erstellen onclick event anchor element - javascript

Dies ist ein Codesnippet - eine While-Schleife, die mehrere Hyperlinks auf derselben Seite erstellt. Ich habe versucht, nur das Onclick-Ereignis an das a-Element hinzufügen, das heißt

a.onclick=myfunction() 

aber, wenn die Seite mit einer Liste dieser Links geladen wird - die Funktion automatisch für jeden Link aufgerufen wird.

So sieht mein Code aus - ich denke, ich sollte eine ID für jeden Link verwenden?

var a = document.createElement('a'); 
    var linkText = document.createTextNode(child.innerHTML); 
    a.appendChild(linkText); 
    a.title = child.innerHTML; 
    a.href = "#stockContent" + i; 
    a.id = "link_id" + i; 

    ... 

i die Iteratorvariable

+0

Ich würde auf jeden Fall die Angewohnheit haben, IDs auf die Dinge zu setzen, die Sie manipulieren möchten. und mach einfach so etwas wie "a.addEventListener ('onclick', function (event) {tu stuff here})". Das würde funktionieren. Es würde nicht sofort ausgeführt werden - es würde nur "onclick" ausführen, indem es einen Event-Listener hat :). Es ist auch möglich, bei Bedarf benutzerdefinierte Ereignismethoden/Listener zu erstellen. – hipkiss

Antwort

2
a.onclick=myfunction() 

ist der Rückgabewert von myfunction als Onclick gesetzt. Was Sie wollen, ist folgende:

a.onclick=myfunction 
1

Sie die Onclick-Funktion auf zwei Arten angeben:

1) mit einer benannten Funktion:

function myFunction(){ 
    alert('hello'); 
} 

a.onclick = myFunction; 

2) mit einer anonymen Funktion:

a.onclick = function(){ 
    alert('hello'); 
};