2014-02-27 13 views
6

Welche Tags können eine onClick Funktion haben, und welche nicht? Wenn es irgendwelche gibt, wo ich eine onClick Funktion nicht einschließen kann, warum nicht?Welche HTML-Tags können mit onClick verwendet werden?

onClick="func()" 

Gibt es Regeln, an die Sie sich halten sollten?

+6

als Nebenbemerkung, sollten Sie Inline-Javascript vermeiden ... –

Antwort

8

Alle HTML-Elemente können ein onclick-Attribut haben.

Siehe the HTML 5 specification zur Bestätigung.

(Natürlich werden einige Elemente nicht standardmäßig gerendert, so dass Sie ihre Eigenschaften display mit CSS ändern müssten, bevor sie angeklickt werden können, um den Event-Handler auszulösen).

+0

ein onClick in einem HTML oder Titel-Tag ist unsinnig sind, aber ich kann dies tun? –

+0

Ja, Sie können dies tun, aber es wird nicht empfohlen, da es aufdringlich ist. – TylerH

+0

Es ist nicht unsinnig. Das HTML - Element wird gerendert, so dass Sie einen Ereignishandler an es binden können, um auszulösen, wenn irgendein Teil des Dokuments angeklickt wird (ziemlich nützlich, wenn Sie Heatmaps Ihrer Seite generieren möchten, obwohl ich dazu tendieren würde, direkt an den Knoten zu binden Fensterobjekt selbst). Es ist ziemlich seltsam, einen Titel klickbar zu machen, aber 'head, title {display: block; } 'in einem Stylesheet macht es möglich. – Quentin

-3

Sie können das Ereignis verwendet werden kann, auf in diesem sitepoint reference

Die vollständige Liste der Elemente, welche Elemente überprüfen, die es wäre nicht unterstützen:

  • Applet
  • Basis
  • basefont
  • bdo
  • br
  • Schrift
  • Rahmen
  • Frameset
  • Kopf
  • html
  • iframe
  • isindex
  • meta
  • param
  • Skript
  • Stil
  • titel
+5

Das ist veraltet. http://www.w3.org/TR/html5/index.html#attributes-1 – Quentin

+2

@Quentin Zumindest dieser SitePoint-Link erwähnt, dass onclick vollständig von IE5.5 ... – admdrew

+0

http: //validator.w3 unterstützt wird .org/check? uri = http% 3A% 2F% 2Fjsbin.com% 2Fcojuseja% 2F2 & charset =% 28detect + automatisch% 29 & doctype = Inline & ss = 1 & gruppe = 0 & user-agent = W3C_Validator% 2F1.3 + http% 3A% 2F% 2Fvalidator. w3.org% 2Fservices – Quentin

-1

Jedes Element kann über ID oder Klasse ein onclick-Ereignis haben. jQuery verwenden, ist dies sehr einfach:

// Talk to any element with a unique ID of "myElementId". 
$('#myElementId').on('click', function(event){ 
    alert('CLICK'); 
    // do something else. 
    event.preventDefault(); 
}); 

// Talk to any element with a class of "myClassElement". 
$('.myClassElement').on('click', function(event){ 
    alert('CLICK'); 
    // do something else. 
    event.preventDefault(); 
} 

// Talk to the <header> element. 
$('header').on('click', function(event) { 
    alert('CLICK'); 
    // do something else. 
    event.preventDefault(); 
)}; 
+3

Ich denke, dass er über HTML-Tags, nicht über Element Klassen oder ID's – pes502

+1

@ pes502, yes right –

+2

Ich würde dringend raten, Ihre js in Ihrem HTML durch Hinzufügen eines "onClick" Attribut zu Ihrem HTML, wann immer möglich zu mischen. Verknüpfen mit einer externen js-Datei - das Haken in Ihrem Markup ist der ideale Weg zu rollen. Das obige ist, wie Sie das tun würden. – Damon

Verwandte Themen