jQuery if-Abfrage

Peter Klein

Erfahrenes Mitglied
Hallo,

irgendwie stehe ich auf dem Schlauch gerade. Wie kann ich in jQuery in einer if-Abfrage checken ob ein Element angeklickt wurde?

Grüße

Peter
 
Ich hab es jetzt nicht geprüft, aber ich denke, dass es so gehen dürfte:
Javascript:
if($("p").click()) {
  // Code ausführen
}
 
Hi,

ich weiss ja nicht, worauf du genau hinaus willst. Solltest du allerdings zahlreichen Elementen einen Eventhander zuweisen, willst jedoch nur auf eins gezielt reagieren, solltest du das von mir bereits empfohlene target in Verbindung mit der Methode is in Erwägung ziehen.

Beispiel:
Allen p-Elementen wird ein click-Handler zugewiesen, aber nur beim Element mit der ID testID wird gezielt reagiert.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
  <!--
$(function(){
  $("p").click(function(evt){
    // Auslösendes Element
    var objTarget = $(evt.target);
    // Falls das auslösende Element dem gesuchten entspricht
    if(objTarget.is('#testID'))
      alert("Treffer");
  });

});
 //-->
</script>
</head>
<body>
<p id="testID">Testelement 1 (ich reagiere)</p>
<p id="testID_02">Testelement 2</p>
<p id="testID_03">Testelement 3</p>
<p id="testID_04">Testelement 4</p>
<p id="testID_05">Testelement 5</p>
<p id="testID_06">Testelement 6</p>
<p id="testID_07">Testelement 7</p>
</body>
</html>

Ciao
Quaese
 
Hi, ja ich bin gerade dabei mir das anzuschauen mit event.target. scheint das zu sein, womit ich arbeiten kann.

Bin gerade bissl dabei (vor langeweile) meine jQuery Skills aufzufrischen. und ein bisschen am scripten.

Es ist nichts sehr wichtiges :-D

Schaue jetzt mal obs mich weiterbringt
 
Ich bin gerade über Google auf dieses Thema gestoßen, weil ich gerade vor einem ähnlichen Problem stehe. Deswegen hole ich es mal wieder hervor. Hoffe, dass das in Ordnung ist^^

Im Grunde möchte ich etwas ähnliches erreichen.
Werden in einem bestimmten Container (Navigation) Links angeklickt (mache ich mit live()), werden mittels Ajax bestimmte Inhalte nachgeladen. Jetzt möchte ich, dass bei Seitenstart und wenn andere Elemente angeklickt werden, etwas anderes angezeigt wird. Ich möchte also feststellen, ob Links in der Navigation geklickt wurden, oder anderswo auf der Seite. Wie kann ich das am besten machen?

Komme da gerade irgendwie nicht weiter :/
 
Ich gehe mal davon aus, dass deine Navigationsleiste sich in einem eigenen Container befindet (also die einzelnen Navigationselemente sich in einem übergeordneten Element befinden). Dann kannst du einfach folgendes ausprobieren:
Code:
$(function () {
  $(document).onclick(function(evt) {
    var element = $(evt.target).parent();
    
    if(element.is('#navigation-bar')) {
      alert('you clicked on an element in the navigation bar');
    } else {
      alert('you clicked on an element outside of the navigation bar');
    }
  });
});
Und dazu der HTML-Teil:
HTML:
<div id="navigation-bar">
  <a>menu 1</a>
  <a>menu 2</a>
</div>
<div id="content">
  <h1>headline 1</h1>
</div>
 

Neue Beiträge

Zurück