2017-08-30 5 views
1

Nach dem Klick auf eine Schaltfläche sollten nur überprüfte Eingaben ihre Grundfarbe rot ändern (in diesem Fall "first"). Wenn ich klicke, hat sich nichts geändert.Farbe nach Klick ändern

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
    (function fun() { 
 
     $('#duod').on('click', function() { 
 
     $('.tu').filter(':checked').parent().css('color', 'red'); 
 
     }) 
 
    })(); 
 
    </script> 
 
</head> 
 
<body> 
 
    <div class="check"> 
 
    First <input class="tu" type="checkbox"> 
 
    </div> 
 
    <div class="check">>First 
 
    <input class="tu" type="checkbox"> 
 
    </div> 
 
    <div class="check"> 
 
    First <input class="tu" type="checkbox"> 
 
    </div> 
 
    <button id="duod">button</button> 
 
</body> 
 
</html>

Antwort

3

Ihre Klick-Logik ist in Ordnung, das Problem ist, weil Sie Ihren Code in einem IIFE platziert haben, die sofort ausgeführt wird. Dies ist vor das DOM geladen hat und keine Elemente vorhanden sind.

Stattdessen sollten Sie Ihren Code in einem document.ready Event-Handler, wie dieser Ort:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
    $(function() { 
 
     $('#duod').on('click', function() { 
 
     $('.tu').filter(':checked').parent().css('color', 'red'); 
 
     }) 
 
    }); 
 
    </script> 
 
</head> 
 
<body> 
 
    <div class="check"> 
 
    First <input class="tu" type="checkbox"> 
 
    </div> 
 
    <div class="check">First 
 
    <input class="tu" type="checkbox"> 
 
    </div> 
 
    <div class="check"> 
 
    First <input class="tu" type="checkbox"> 
 
    </div> 
 
    <button id="duod">button</button> 
 
</body> 
 
</html>

Edit: feste HTML-Code in Demo

+0

bearbeitet das HTML die Checkbox hatte eine zusätzliche eckige Klammer – Niladri

0

nur hinzufügen müssen „$ "vor Funktion, Beispiel;

+0

Richtige Antwort - Sie brauchen die '()' nach dem fertigen Handler als auch. – Jamiec

Verwandte Themen