8 Stimmen

Kann ich ein onClick()-Ereignis für <h1> bis <h6> Tags haben?

Ich möchte das Ereignis onClick() auf <h1> to <h6> (ein beliebiges Überschriften-Tag) für die Ausführung von Javascript. Bitte geben Sie mir einige Beispiel zu haben onClick() Ereignis in <h1> die eine alert()-Meldung anzeigt.

Danke :)

12voto

Joseph Weissman Punkte 5597

Es handelt sich um das Modell der Inline-Ereignisregistrierung. Und ja, Sie peut mehr oder weniger das tun, wonach Sie fragen.

Aber bitte tun Sie das nicht.

Es ist alt und zuverlässig, ja. Aber der Nachteil ist, dass Sie Ihre JS-Verhaltensweisen in Ihre XHTML-Struktur einfügen müssen.

Es ist viel besser, die folgende Redewendung zu verwenden:

element.onclick = doSomething;

In jQuery könnte dies etwa so aussehen:

  $(":header").click(function(){
     alert('Handler for .click() called.')
   });

Viel Glück!

10voto

Surreal Dreams Punkte 25265

Wenn Sie bereit sind, jQuery zu verwenden, ist es einfach zu handhaben.

$('h1, h2, h3, h4, h5, h6').click(function(){
    //do something on click
});

Wenn Sie auf jeder Ebene der Kopfzeile eine andere Funktion wünschen, können Sie auch das problemlos tun:

$('h1').click(function(){
    //do something on click
});

$('h2').click(function(){
    //do something on click
});

//Etc.

1voto

Ken Redler Punkte 23503

Wenn Sie keine Bibliothek wie jQuery verwenden möchten, gibt es eine Möglichkeit, dies zu tun:

var tags = ['h1','h2','h3','h4','h5','h6'];

for( var i in tags ){
    var these = document.getElementsByTagName(tags[i]);
    if( these.length ){
        for( var n=0,m=these.length;n<m;n++ ){
          these[n].addEventListener('click',function(){ 
            alert('hello'); 
          },false);
        }  
    }
}

Beispiel: http://jsfiddle.net/redler/HvvVQ/

Wie @Shadow Wizard in den Kommentaren anmerkt, verwendet der IE attachEvent anstelle von addEventListener Damit dies in allen Browsern funktioniert, brauchen Sie einen Code, der in beide Richtungen funktioniert. Wenn Sie das Kaninchenloch der Browserunterschiede und der Ausführlichkeit vermeiden möchten, kann das Gleiche in jQuery erreicht werden, zum Beispiel so:

$('h1,h2,h3,h4,h5,h6').click( function(){
  alert('hello');
});

Noch prägnanter, dank des Kommentars von @Kobi, ist :header :

$(':header').click( function(){...} );

Ich würde empfehlen, eine Bibliothek Ihrer Wahl zu wählen, um diese Dinge zu vereinfachen.

0voto

bvenkatr Punkte 85

Code:

<script>
    function handleOnClick() {
    alert("Clicked on h1 tag");
  }
</script>

<h1 onclick="handleOnClick()">
  I am h1 tag
</h1>

0voto

Asa Richards Punkte 19

Verwenden Sie das Schlüsselwort 'function', um function() zu erstellen, und jeder logische Code kommt in die Script-Tags.

<html>
        <head> 
            <title>Understanding Tags in JS </title>
        </head>
        <body>
            <h1> Welcome to JavaScript Tutorial </h1>
            <h2 id = 'h2tag' onclick = "clickedMe()"> Click me to change </h2>
            <script>
                function clickedMe() {
                document.getElementById('h2tag').innerHTML = 'Alas ! I am clicked!'
            }
            </script>
        </body>
    </html>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X