Home › Forums › JavaScript › Can you help me make my javascript more efficient
- This topic is empty.
Viewing 4 posts - 1 through 4 (of 4 total)
-
AuthorPosts
-
July 18, 2012 at 9:32 am #38963
Steven Gardner
ParticipantI would love it if someone could have a look at my jquery and help me reduce the lines and make it more efficient.
Thanks$('.settings').click(function(event){
event.preventDefault();
if($('.settingsbox').hasClass('hidden')){
$('.settingsbox').slideDown(400);
$('.filtersbox').slideUp('fast');
$('.filtersbox').addClass('hidden');
$('.settingsbox').removeClass('hidden');
$('.settings').addClass('settingsactive');
$('.closesettings').slideDown(400);
}else{
$('.settingsbox').slideUp(400);
$('.settingsbox').addClass('hidden');
$('.closesettings').hide(400);
$('.settings').removeClass('settingsactive');
}
});
$('.filters').click(function(event){
event.preventDefault();
if($('.filtersbox').hasClass('hidden')){
$('.filtersbox').slideDown(400);
$('.settingsbox').slideUp('fast');
$('.settingsbox').addClass('hidden');
$('.settings').removeClass('settingsactive');
$('.filtersbox').removeClass('hidden');
$('.filters').addClass('filtersactive');
}else{
$('.filtersbox').slideUp(400);
$('.filtersbox').addClass('hidden');
$('.filters').removeClass('filtersactive');
}
});
$('.closesettings').click(function(event){
event.preventDefault();
$('.settingsbox').slideUp(400);
$('.settingsbox').addClass('hidden');
$('.settings').removeClass('settingsactive');
$('.closesettings').hide(400);
});
$('.closefilters').click(function(event){
event.preventDefault();
$('.filtersbox').slideUp(400);
$('.filtersbox').addClass('hidden');
$('.filters').removeClass('filtersactive');
});July 18, 2012 at 12:08 pm #106319Taufik Nurrohman
ParticipantHmph. 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);
});July 18, 2012 at 4:09 pm #106331TheDoc
MemberI would also set up variables.
var filtersBox = $('.filtersbox'),
settingsBox = $('.settingsbox'),
settings = $('.settings'),
// etc.Then use them like this:
settingsbox.slideUp('fast');
July 19, 2012 at 7:10 am #106409Steven Gardner
ParticipantThanks Guys!
I’ve edited my stuff and here’s how it looks.
/* Set up variables */
var filtersBox = $('.filtersbox'),
settingsBox = $('.settingsbox'),
settings = $('.settings'),
filters = $('.filters'),
closeSettings = $('.closesettings'),
closeFilters = $('.closefilters');
settings.click(function(event){
event.preventDefault();
if(settingsBox.is(':hidden')){
settingsBox.slideDown(400).removeClass('hidden');
filtersBox.slideUp('fast').addClass('hidden');
settings.addClass('settingsactive');
closeSettings.slideDown(400);
}else{
settingsBox.slideUp(400).addClass('hidden');
closeSettings.hide(400);
settings.removeClass('settingsactive');
}
});
filters.click(function(event){
event.preventDefault();
if(filtersBox.is(':hidden')){
filtersBox.slideDown(400).removeClass('hidden');
settingsBox.slideUp('fast').addClass('hidden');
settings.removeClass('settingsactive');
filters.addClass('filtersactive');
}else{
filtersBox.slideUp(400).addClass('hidden');
filters.removeClass('filtersactive');
}
});
closeSettings.click(function(event){
event.preventDefault();
settingsBox.slideUp(400).addClass('hidden');
settings.removeClass('settingsactive');
closeSettings.hide(400);
});
closeFilters.click(function(event){
event.preventDefault();
filtersBox.slideUp(400).addClass('hidden');
filters.removeClass('filtersactive');
}); -
AuthorPosts
Viewing 4 posts - 1 through 4 (of 4 total)
- The forum ‘JavaScript’ is closed to new topics and replies.