Ibrahim Azhar Armar
Ibrahim Azhar Armar

Reputation: 25745

jQuery - toggle does not fire on page reload

i have this HTML.

<tr>
    <td width="75">Mon</td>
    <td class="bn_time" width="60">
        <input id="mon_open" name="mon_open" class="time" placeholder="opening time" />
    </td>
    <td class="bn_time" width="10" align="center">-</td>
    <td class="bn_time" width="100">
        <input id="mon_close" name="mon_close" class="time" placeholder="closing time" />
    </td>
    <td colspan="3" align="center" class="bn_holiday" hidden>Holiday</td>
    <td>
        <input type="checkbox" name="mon_closed" id="mon_closed" class="bn_closed" />
        <label for="mon_closed">Closed</label>
    </td>
</tr>

i am using this jQuery.

$('.bn_closed').on('change', function() {
    var element = $(this);
    var id = element.attr('id');
    var day = id.slice(0,-7);
    var day_open = day+'_open';
    var day_close = day+'_close';
    var checked = element.is(':checked');
    var td = element.closest("td");
    td.siblings(".bn_time").toggle(!checked);
    td.siblings(".bn_holiday").toggle(checked);
});

to achieve the following.

if($('.bn_closed').is(':checked')) {
     //hide all <td> element with class bn_time
     //show <td> element with class bn_holiday
} else {
    //show all <td> element with class bn_time
    //hide <td> element with class bn_holiday
}

this works with change event of .bn_closed however when the page is reloaded and if the element with class .bn_closed is checked. the toggling does not comes into effect. what i want is the toggling should take place in the event of page reload too. how do i go with it?

thank you

Upvotes: 1

Views: 174

Answers (1)

Ram
Ram

Reputation: 144689

Try this:

$('.bn_closed').on('change', function() {
    // ...
}).change()

Upvotes: 1

Related Questions