Оператор Jquery If - функции переключения - PullRequest
2 голосов
/ 25 августа 2011
                    $(document).ready(function() {

            $("span#label_Flat").hide();
            $("span#added_Flat").hide();
            $("span#removed_Flat").hide();



            if ($('#Flat:checked').val() != false) {

                $('#Flat').click(function() {
                    $("span#label_Flat").toggle();
                    $("span#removed_Flat").toggle();

                });

            } else {

                $('#Flat').click(function() {
                    $("span#label_Flat").toggle();
                    $("span#added_Flat").toggle();

            });                 
        });

Может кто-нибудь указать мне, почему это не работает?

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

В настоящее время промежуток не скрыт, и поэтому не переключайтесь между скрытием и отображением, как следует.

HTML это:

<input id="Flat" type="checkbox" name="Flat" checked />


<p>
<span id="label_Flat">Flat: </span>
<span id="added_Flat">Added</span>
<span id="removed_Flat">Removed</span>
</p>

Заранее спасибо за помощь.

Пример можно увидеть здесь: http://jsfiddle.net/WEq5u/10/

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Я думаю, что вы ищете это.Чтобы узнать, установлен ли флажок, вы можете просто использовать свойство this.checked, которое будет возвращать true, если оно установлено, или false.

        $(document).ready(function() {

            $("span#label_Flat").hide();
            $("span#mp_Flat").hide();
            $("span#removed_Flat").hide();

            $('#Flat').click(function() {
                if(this.checked){
                   $("span#label_Flat").toggle();
                   $("span#removed_Flat").toggle();
                }
                else{
                   $("span#label_Flat").toggle();
                   $("span#mp_Flat").toggle();
                }
            }).click();

        });
0 голосов
/ 25 августа 2011

Это должно сработать, я взял код ShankarSangoli и просто добавил случай, если страница загружается с установленным флажком или нет.

$(document).ready(function () {
    $("span#label_Flat").hide();
    $("span#mp_Flat").hide();
    $("span#removed_Flat").hide();

    if ($('#Flat').attr('checked') == true) {
        $("span#label_Flat").toggle();
        $("span#removed_Flat").toggle();
    }
    else {
        $("span#label_Flat").toggle();
        $("span#mp_Flat").toggle();
    }
    $('#Flat').click(function () {
        if (this.checked) {
            $("span#label_Flat").toggle();
            $("span#removed_Flat").toggle();
        }
        else {
            $("span#label_Flat").toggle();
            $("span#mp_Flat").toggle();
        }
    });
});
0 голосов
/ 25 августа 2011

Застрелен в темноте здесь, но я думаю,

 if ($('#Flat:checked').val() != undefined) {

должно быть

 if ($('#Flat:checked').val() != false) {

флажок val должен возвращать true или false, и неопределенный, только если это не флажок, насколько я знаю.

...