2016-04-21 2 views
0

Wie kann ich das Verhalten der Methode basierend darauf ändern, auf welchen Knoten geklickt wurde? Ich möchte das data Attribut value zu ändern, wenn die $('.parent') geklickt wurde.Wie unterscheidet man das Klickereignis basierend auf einem angeklickten DOM-Knoten?

$('.parent').on('click', function (event) { 
    this.someClickFunction(event); 
}); 

$('.child').on('click', function (event) { 
    this.someClickFunction(event); 
}); 

someClickFunction: function (event) { 
    //TODO: If $('.parent') was clicked, change to 0 
    $('.holder').data('type', 1); 
} 
+0

If ($ ('Eltern') == event.target) ?? –

Antwort

1

Sie können .is(selector) verwenden, um zu überprüfen, auf welches Element geklickt wurde.

Überprüfen Sie die aktuelle übereinstimmende Menge von Elementen gegen ein Selektor-, Element- oder jQuery-Objekt und geben Sie true zurück, wenn mindestens eines dieser Elemente den angegebenen Argumenten entspricht.

Der Einfachheit halber habe ich die Funktion Verweis auf Click-Handler übergeben.

$('.parent').on('click', this.someClickFunction); 
$('.child').on('click', this.someClickFunction); 


someClickFunction: function (event) { 
    $('.holder').data('type', $(event.target).is('.parent') ? 1: 0);   
} 

Ein gut lesen Difference between $(this) and event.target?

Verwandte Themen