2017-04-20 1 views
1

Ich versuche, eine Funktion direkt im Attribut onclick meiner Taste zu verwenden, aber ich habe immer einen Fehler. Beispiel:Wie schreiben Funktion in onclick Taste Attribut

<button onclick="function() { alert('hello'); }">Click me</button> 

Und das Ergebnis ist:

Uncaught SyntaxError: Unexpected token (

+2

Javascript und Java haben sehr wenig gemeinsam. Entfernen Sie das Java-Tag! –

+0

Alles, was Sie zu tun versuchen, ist * definieren * eine Funktion, die sowieso nichts sichtbar machen würde. Rufen Sie einfach den Code auf, den Sie aufrufen möchten: 'onclick =" alert ('hallo') "' Wenn Sie eine Funktion definieren möchten, tun Sie dies separat in Ihrem JavaScript-Code und rufen Sie einfach die Funktion in 'onclick' auf. (Oder, noch besser, hängen Sie es als Handler aus dem JavaScript-Code an, damit Sie kein JavaScript in Ihrem HTML schreiben.) – David

Antwort

1

keine Notwendigkeit, es eine Funktion zu machen, nur die Aussagen Liste:

<button onclick="alert('hello');alert('hello 2');alert('hello 3');">Click me</button> 
+0

Es war nur ein Beispiel, ich habe einen komplexen Code mit einem Ajax-Aufruf innerhalb des Onclicks , aber der Fehler ist immer der gleiche – Storm

+0

ok, Sie könnten Ihre Frage aktualisieren, um besser Ihren speziellen Fall zu reflektieren. Immer noch. Warum möchten Sie eine Inline-Funktion verwenden? Es gibt viele andere Muster, die Sie verwenden könnten – user5328504

0

Im Folgenden Code können Sie Funktion hinzufügen in Ihrem onclick Attribut.

Klick mich

<button onclick="javascript:(function() { alert('hello'); })()">Click me</button>

0

Sie Ihren Code wie folgt schreiben soll.

<button onClick="alert('hello');">Click me</button>

0

Sie können wie die Dinge tun, wenn Sie all dies in Ihrer HTML-Datei wollen

<script> 
 
     function hello(){ 
 
    \t alert('hello') 
 
     } 
 
    </script> 
 

 
    <button id="bait" onClick="hello()"> 
 
     Click me 
 
    </button> 
 
    <!-- OR --> 
 
    <!-- <button onclick="javascript:(() => {alert('hello')})()"> --> 
 
    <!-- But it's good for short function only -->

Aber ich denke, Sie jQuery statt (wenn verwenden sollten können Sie)



Wenn Sie dies tun möchten, fügen Sie einfach eine Funktion clickhandler:

$("#bait").on("click",() => { 
 
     alert('hello') 
 
    })
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> 
 

 
<button id="bait">Click me </button>

Ein bisschen übertrieben für eine Aufforderung, aber ich nehme an, Sie bitten, dies für eine trickier Funktion so dass es dann insgesamt einfacher sein imo

Verwandte Themen