2016-04-04 16 views
0

Ich habe zwei js-Dateien. Erstes (alert.js)Javascript-Funktion sofort aufrufen

function test() { 
    var name= document.getElementById("name").value; 
    alert(name); 
}; 

und zweiten (main.js)

document.getElementById("question_button").addEventListener("click", test()); 

in html i sieht aus wie der

<body> 
    ... 
    <script type="text/javascript" src="js/alert.js"></script> 
    <script type="text/javascript" src="js/main.js"></script> 
</body> 

Funktionstest aufgerufen wird, wenn Seite geladen ist . Es ist nicht das, was ich brauche. Es ist wahrscheinlich sehr einfach, aber ich verstehe es nicht. Wie mache ich die Funktion "test" nur aufrufen wenn die Taste gedrückt wird?

+3

ändern 'Test()' auf '' test' –

+0

Test() 'ruft die Funktion, Sie wollen nur 'test' in Ihrem' addEventListener' –

Antwort

2

Sie rufen test() an und übergeben den zurückgegebenen Wert (undefined) an addEventListener. Nur test direkt als Argument übergeben, anstatt sie zu nennen:

document.getElementById("question_button").addEventListener("click", test); 

oder in einer anonymen Funktion übergeben:

document.getElementById("question_button").addEventListener("click", function () { test(x) }); 
+0

Ok es funktioniert gut. Aber was, wenn ich die Funktion "test" mit einem Argument aufrufen muss? Sagen "Test" sieht so aus: 'Funktionstest (val) { alert (val); }; ' Und der zweite Teil des Codes sieht so aus: ' var x = "alert x!"; document.getElementById ("question_button"). AddEventListener ("klick", test (x)); ' Wie wird es in diesem Fall behoben? – Bajzel

+1

Sie könnten eine anonyme Funktion verwenden. Sehen Sie sich das folgende [https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Event_Listener_with_anonymous_function](https://developer.mozilla.org/en-US/docs/Web/ an. API/EventTarget/addEventListener # Event_Listener_with_anonymous_function). –

+1

@Bajzel Eine Möglichkeit besteht darin, eine anonyme Funktion zu übergeben, die 'test (x)' aufruft. Ich habe meine Antwort bearbeitet. – Paulpro