Ich versuche, auf eine Schaltfläche in meiner Broschüre Map zuzugreifen. Die Schaltfläche wird mit einem Plugin "easy-button" erstellt. Mein Hauptziel ist es, zu sehen, ob die Schaltfläche angeklickt wurde (ist aktiv), ich werde es für die Validierung in einer anderen Funktion verwenden, die hier nicht gezeigt wird.Finden Sie das Element und sehen Sie, ob es aktiv ist/hasClass
So sieht das HTML für die Schaltfläche im Browser-Debugger aus (ich glaube der HTML-Code wird vom Plugin erstellt?).
Bevor es
<button class="easy-button-button leaflet-bar-part leaflet-interactive add-markers-active" title="Vis crosshair">
<span class="button-state state-add-markers add-markers-active">
<span class="fa fa-crosshairs fa-lg"></span>
</span>
</button>
geklickt Nachdem es
<button class="easy-button-button leaflet-bar-part leaflet-interactive remove-markers-active" title="Fjern crosshair">
<span class="button-state state-remove-markers remove-markers-active">
<span class="fa fa-undo"></span>
</span>
</button>
Diese Klick-Funktion Zugriff auf die Schaltfläche und Show ‚wurde Knopf geklickt‘ geklickt, aber die if-Anweisung nicht passieren. Ich bin mit dem Button CSS-Pfad kopieren im Browser auf die Schaltfläche gekommen, aber es scheint sehr lang zu sein.
$("div.leaflet-bar.easy-button-container.leaflet-control > button > span").click(function(){
alert("Button was clicked");
if
($('span').hasClass('fa fa-crosshair fa-lg'))
{
alert('My button has active class')
}
});
Irgendwelche Ratschläge, was ich falsch mache?
Sie benötigen um die tatsächliche Spannweite in Ihrem Selektor zu bewerten ... nicht alle Spannen also '$ ('span'). hasClass ...' muss '$ ('span', this) .hasClass ...' oder '$ (this) .find ('span'). hasClass ...' sein ... Suche auch nur nach einer Klasse das Fadenkreuz eins – DaniP