2017-02-01 2 views
4

Ich brauche eine jQuery-Funktion, die Folgendes tut: Wenn zum Beispiel checkbox1 aktiviert ist, wenn ich auf einige andere Elemente klicke (mit einer ID beginnend mit element-) könnte ich die id ausdrucken von diesen Elementen in der Konsole wie folgt:Click-Ereignis aktivieren, wenn ein anderes Kontrollkästchen aktiviert ist

Ich habe dieses Beispiel getestet und es funktioniert nicht. Ich habe keine Ahnung, wenn ich falsch liege.

+1

console.log ($ (this) .attr ('id')) – sTx

+0

Stellen Sie zusätzlich zum @ sTx-Kommentar sicher, dass Ihr Code in ein '$ (document) .ready (function() {...})' 'eingeschlossen ist. – Tricky12

+0

sieht aus wie es mit 'this.id' auch funktioniert - wusste das nicht :) – sTx

Antwort

5

Der einfachste Weg dies zu tun wäre, Ihre Logik zu invertieren. Das heißt, platzieren Sie den Click-Handler auf die erforderlichen Elemente und überprüfen Sie dabei den Status des Kontrollkästchens. Versuchen Sie folgendes:

$(document).on('click', '[id^="element-"]', function(e) { 
 
    if ($('#checkbox1').is(':checked')) 
 
    console.log(this.id); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<label> 
 
    <input type="checkbox" id="checkbox1" /> 
 
    Check me! 
 
</label> 
 

 
<div> 
 
    <button id="element-foo">Foo</button> 
 
    <button id="element-bar">Bar</button> 
 
</div>

+0

Vielen Dank, es funktioniert sehr gut! – bobc82

0

ich es erprobt, und dies wird für Sie arbeiten

$("input[id^=d]").on("click", function() { 
 
    var id = $(this).prop("id"); 
 
    if ($("#c1").is(":checked")) { 
 
     console.log(id); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
Dogs <input id="c1" type="checkbox" /> 
 
Cats <input id="d1" type="checkbox" /> 
 
Zebras <input id="d2" type="checkbox" /> 
 
Rhinos <input id="e1" type="checkbox" />

Verwandte Themen