# jQuery if-Abfrage



## Peter Klein (16. November 2009)

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


----------



## Parantatatam (16. November 2009)

Ich hab es jetzt nicht geprüft, aber ich denke, dass es so gehen dürfte:

```
if($("p").click()) {
  // Code ausführen
}
```


----------



## Quaese (16. November 2009)

Hi,

über event.target sollte das ereignisauslösende Element zu ermitteln sein.

Ciao
Quaese


----------



## Peter Klein (16. November 2009)

einfach nur crack hat gesagt.:


> Ich hab es jetzt nicht geprüft, aber ich denke, dass es so gehen dürfte:
> 
> ```
> if($("p").click()) {
> ...



Hi, das funktionierte nicht, was ich komisch fand. Deswegen postete ich es hier.


----------



## Quaese (16. November 2009)

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.

```
<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


----------



## Peter Klein (16. November 2009)

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


----------



## aurus (25. September 2011)

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 :/


----------



## Parantatatam (25. September 2011)

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:

```
$(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:

```
<div id="navigation-bar">
  <a>menu 1</a>
  <a>menu 2</a>
</div>
<div id="content">
  <h1>headline 1</h1>
</div>
```


----------



## aurus (25. September 2011)

Ah, dankeschön, das ist ein guter Tip


----------

