Forums

The forums ran from 2008-2020 and are now closed and viewable here as an archive.

Home Forums JavaScript Can you help me make my javascript more efficient Re: Can you help me make my javascript more efficient

#106319
Taufik Nurrohman
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);
});