Как использовать jQuery, чтобы скрыть родителя <div> - PullRequest
1 голос
/ 12 марта 2012

Я хочу иметь возможность скрыть весь контейнер, когда я отмечаю флажок.

* HTML *

<div class="showIt">
    <div>abc</div>
    <div>123</div>
    <div><input type="checkbox" /></div>
</div>

* CSS *

div.showIt {
    display:inherit;
}
div.hideIt {
    display:none;
}

* JavaScript (не работает) *

<script>
jQuery.support.cors = true; // needed for ajax to work in certain older browsers and versions

$(document).ready(function(){

    $(this).change(function(e) {

        $(this).parent().toggleClass('showIt hideIt');

        $(this).closest("div").toggleClass('showIt hideIt');

    });

}); // end .ready()
</script>

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Вы синтаксически не правы.

$(this) в вашем коде не выбирает ни одного элемента в это время.

$("input:checkbox").change(function(e) {
// ^ This here tell to select an input element of type `checkbox` and then attach an event to it
    $(this).parent().toggleClass('hideIt'); 
    //               ^ Here provide show those classes which you want to toggle, giving multiple class does not toggle between them

    $(this).closest("div").toggleClass('hideIt');
    //This is does same thing as above statement

});

Вам не нужно

div.showIt {
    display:inherit;
}

Только переключить .hideIt Это более чем достаточно

Демо

1 голос
/ 12 марта 2012

@ Ответ Феликса Клинга сработал.

jQuery.support.cors = true; // needed for ajax to work in certain older browsers and versions

$(document).ready(function(){

$("input:checkbox").change(function(e) {
// ^ This here tell to select an input element of type `checkbox` and then attach an event to it
    //$(this).parent().toggleClass('hideIt'); 
    //               ^ Here provide show those classes which you want to toggle, giving multiple class does not toggle between them -- THIS DID NOT WORK

    //$(this).closest("div").toggleClass('hideIt'); THIS DID NOT WORK EITHER

    $(this).closest("div.showIt").toggleClass('hideIt'); // THIS WORKED

});

}); // end .ready()
...