/ / JQuery - políčka sa nezapínajú - php, javascript, jquery, yii

JQuery - začiarkavacie políčka nezapínajte - php, javascript, jquery, yii

Mám problém s jQuery.

Mám začiarkavacie políčko s ID "#checkAll" azačiarkavacie políčka s triedou „začiarkavacie políčka“. Chcem zapnúť všetky začiarkavacie políčka, keď je začiarknuté políčko s ID „checkAll“, a chcel by som vypnúť všetky začiarkavacie políčka, keď je začiarknuté políčko s ID „checkAll“.

Čo však teraz znamená, že keď prvýkrát kliknem na začiarkavacie políčko (#checkAll), zapnú sa všetky ostatné začiarkavacie políčka a keď prvýkrát zapnem zaškrtávacie políčko (#checkAll), vypnú sa aj všetky ostatné začiarkavacie políčka.

Keď sa však pokúsim po druhýkrát kliknúť na začiarkavacie políčko (#checkAll), všetky ostatné začiarkovacie políčka nie sú zapnuté.

Neviem, prečo sa to stane.

Prosím pomôžte mi!

Toto sú moje udalosti na spracovanie javascriptov.

ADMIN.event = (function() {

function _init(){

$(function(){

var checkAll = $("#checkAll"),
checkboxes = $(".checkboxes");

checkAll.click(function(){
if($(this).is(":checked")){
checkboxes.attr("checked", "checked");
} else {
checkboxes.removeAttr("checked");
}
})

});

}


_init();


}());

Toto je môj zobrazovací súbor v php.

<table class="fullTable">
<tr class="listTableTr">
<th class="listTableTh tinyTh"><input type="checkbox" name="" id="checkAll" /></th>
<th id="articleTitleTh" class="listTableTh">title</th>

</tr>

<?php foreach($postData as $post): ?>

<td class="listTableTd"><input type="checkbox"  name="" class="checkboxes" /></td>
<td class="listTableTd"><a href="<?php echo "index.php?r=admin/post/edit&post=".$post["id"]; ?>"><?php echo $post["title"];?></a></td>

<?php endforeach; ?>

</table>

odpovede:

3 pre odpoveď č. 1

Skúste pomocou .prop() Páči sa mi to

checkAll.click(function(){
checkboxes.prop("checked",this.checked);
});

A je lepšie používať ho .on() Páči sa mi to

checkAll.on("click" , function(){
checkboxes.prop("checked",this.checked);
});

1 pre odpoveď č. 2

Skúste to :

    $("#checkAll").on("click",function(){
if($("#checkAll").is(":checked")) {
$(".checkboxes").attr("checked",true);
} else {
$(".checkboxes").attr("checked",false);
}
});

1 pre odpoveď č. 3

DEMO
Skúste toto

$("#checkAll").click(function () {
if ($(this).is(":checked"))
$(".checkboxes").prop("checked","checked");
else
$(".checkboxes").prop("checked",false);
});