Home › Forums › JavaScript › Can you help me make my javascript more efficient › Re: Can you help me make my javascript more efficient
July 18, 2012 at 12:08 pm
#106319
Participant
Hmph. Instead of using the hidden
class, I prefer to check on the element visibility:
$('.settings').click(function (event) {
event.preventDefault();
if ($('.settingsbox').is(':hidden')) {
$(this).slideDown(400);
$('.filtersbox').slideUp('fast');
$('.settings').addClass('settingsactive');
$('.closesettings').slideDown(400);
} else {
$(this).slideUp(400);
$('.filtersbox').slideDown('fast');
$('.settings').removeClass('settingsactive');
$('.closesettings').hide(400);
}
});
$('.filters').click(function (event) {
event.preventDefault();
if ($('.filtersbox').is(':hidden')) {
$(this).slideDown(400);
$('.settingsbox').slideUp('fast');
$('.settings').removeClass('settingsactive');
$('.filters').addClass('filtersactive');
} else {
$(this).removeClass('filtersactive');
$('.filtersbox').slideUp(400);
}
});
$('.closesettings').click(function (event) {
event.preventDefault();
$(this).hide(400);
$('.settingsbox').slideUp(400);
$('.settings').removeClass('settingsactive');
});
$('.closefilters').click(function (event) {
event.preventDefault();
$('.filtersbox').slideUp(400);
$('.filters').removeClass('filtersactive');
});
or, with toggle:
$('.settings').toggle(function (event) {
$(this).slideDown(400);
$('.filtersbox').slideUp('fast');
$('.settings').addClass('settingsactive');
$('.closesettings').slideDown(400);
event.preventDefault();
}, function () {
$(this).slideUp(400);
$('.filtersbox').slideDown('fast');
$('.settings').removeClass('settingsactive');
$('.closesettings').hide(400);
});
$('.filters').toggle(function (event) {
$(this).slideDown(400);
$('.settingsbox').slideUp('fast');
$('.settings').removeClass('settingsactive');
$('.filters').addClass('filtersactive');
event.preventDefault();
}, function () {
$(this).removeClass('filtersactive');
$('.filtersbox').slideUp(400);
});