Skip to main content
edited tags
Link
Jamal
  • 34.9k
  • 13
  • 133
  • 237
added 186 characters in body
Source Link
Jamal
  • 34.9k
  • 13
  • 133
  • 237

I know I have 3 near identical blocks of code. If I create a function, the code will be the same. I'm looking for more accurate code and am trying to reduce my code into fewer lines.

I know I have 3 near identical blocks of code. If I create a function, the code will be the same. I'm looking for more accurate code and am trying to reduce my code into fewer lines.

Rollback to Revision 7
Source Link
Jamal
  • 34.9k
  • 13
  • 133
  • 237

I kwnow I have 3 near identical blocks of code. If I create a function, the code will be the same. I'm looking for a code more accurated. I'm trying to reduce my code into less lines... Can anyone help me? Thanks !!!!

JSFiddleJSFiddle

    $('#click-me-languages'idiomas').click(function () {
        var languagesVisibleidiomasVisible = $("#menu-languages"idiomas").is(":visible");
        var booksVisiblecoleccionesVisible = $("#menu-books"colecciones").is(":visible");
        var aboutVisiblenosotrosVisible = $("#menu-about"nosotros").is(":visible");
        if (booksVisiblecoleccionesVisible || aboutVisiblenosotrosVisible) {
            if (booksVisiblecoleccionesVisible) {
                $('#click-me-books'colecciones').removeClass('active');
                $('#click-me-languages'idiomas').addClass('active');
                $("#menu-books"colecciones").slideUp('slow', function () {
                    $('#menu-languages'idiomas').slideToggle('slow');
                });
            }
            if (aboutVisiblenosotrosVisible) {
                $('#click-me-about'nosotros').removeClass('active');
                $('#click-me-languages'idiomas').addClass('active');
                $("#menu-about"nosotros").slideUp('slow', function () {
                $('#menu-languages').slideToggle('slow');
            });
        }
    } else {
        if (languagesVisible) {
            $("#menu'#menu-languages"idiomas').slideToggle('slow', function () {;
                $('#click-me-languages').removeClass('active'});
            });
        } else {
            if (idiomasVisible) {
                $("#menu-idiomas").slideToggle('slow', function () {
                    $('#click-me-languages'idiomas').removeClass('active');
                });
            } else {
                $('#click-me-idiomas').addClass('active');
                $("#menu-languages"idiomas").slideToggle('slow');
            }
        }
    }
    
});

    });

    $('#click-me-books'colecciones').click(function () {
        var languagesVisibleidiomasVisible = $("#menu-languages"idiomas").is(":visible");
        var booksVisiblecoleccionesVisible = $("#menu-books"colecciones").is(":visible");
        var aboutVisiblenosotrosVisible = $("#menu-about"nosotros").is(":visible");
        if (languagesVisibleidiomasVisible || aboutVisiblenosotrosVisible) {
            if (languagesVisibleidiomasVisible) {
                $('#click-me-languages'idiomas').removeClass('active');
                $('#click-me-books'colecciones').addClass('active');
                $("#menu-languages"idiomas").slideUp('slow', function () {
                    $('#menu-books'colecciones').slideToggle('slow');
                });
            }
            if (aboutVisiblenosotrosVisible) {
                $('#click-me-about'nosotros').removeClass('active');
                $('#click-me-books'colecciones').addClass('active');
                $("#menu-about"nosotros").slideUp('slow', function () {
                $('#menu-books').slideToggle('slow');
            });
        }
    } else {
        if (booksVisible) {
            $("#menu'#menu-books"colecciones').slideToggle('slow', function () {;
                $('#click-me-books').removeClass('active'});
            });
        } else {
            if (coleccionesVisible) {
                $("#menu-colecciones").slideToggle('slow', function () {
                    $('#click-me-books'colecciones').removeClass('active');
                });
            } else {
                $('#click-me-colecciones').addClass('active');
                $("#menu-books"colecciones").slideToggle('slow');
            }
        }
    }
    
});

    });

    $('#click-me-about'nosotros').click(function () {
        var languagesVisibleidiomasVisible = $("#menu-languages"idiomas").is(":visible");
        var booksVisiblecoleccionesVisible = $("#menu-books"colecciones").is(":visible");
        var aboutVisiblenosotrosVisible = $("#menu-about"nosotros").is(":visible");
        if (languagesVisibleidiomasVisible || booksVisiblecoleccionesVisible) {
            if (languagesVisibleidiomasVisible) {
                $('#click-me-languages'idiomas').removeClass('active');
                $('#click-me-about'nosotros').addClass('active');
                $("#menu-languages"idiomas").slideUp('slow', function () {
                    $('#menu-about'nosotros').slideToggle('slow');
                });
            }
            if (booksVisiblecoleccionesVisible) {
                $('#click-me-books'colecciones').removeClass('active');
                $('#click-me-about'nosotros').addClass('active');
                $("#menu-books"colecciones").slideUp('slow', function () {
                $('#menu-about').slideToggle('slow');
            });
        }
    } else {
        if (aboutVisible) {
            $("#menu'#menu-about"nosotros').slideToggle('slow', function () {;
                $('#click-me-about').removeClass('active'});
            });
        } else {
            if (nosotrosVisible) {
                $("#menu-nosotros").slideToggle('slow', function () {
                    $('#click-me-about'nosotros').removeClass('active');
                });
            } else {
                $('#click-me-nosotros').addClass('active');
                $("#menu-about"nosotros").slideToggle('slow');
            }
        }
    }
    
 });

I kwnow I have 3 near identical blocks of code. If I create a function, the code will be the same. I'm looking for a code more accurated. I'm trying to reduce my code into less lines... Can anyone help me? Thanks !!!!

JSFiddle

$('#click-me-languages').click(function () {
    var languagesVisible = $("#menu-languages").is(":visible");
    var booksVisible = $("#menu-books").is(":visible");
    var aboutVisible = $("#menu-about").is(":visible");
    if (booksVisible || aboutVisible) {
        if (booksVisible) {
            $('#click-me-books').removeClass('active');
            $('#click-me-languages').addClass('active');
            $("#menu-books").slideUp('slow', function () {
                $('#menu-languages').slideToggle('slow');
            });
        }
        if (aboutVisible) {
            $('#click-me-about').removeClass('active');
            $('#click-me-languages').addClass('active');
            $("#menu-about").slideUp('slow', function () {
                $('#menu-languages').slideToggle('slow');
            });
        }
    } else {
        if (languagesVisible) {
            $("#menu-languages").slideToggle('slow', function () {
                $('#click-me-languages').removeClass('active');
            });
        } else {
            $('#click-me-languages').addClass('active');
            $("#menu-languages").slideToggle('slow');
        }
    }
    
});

$('#click-me-books').click(function () {
    var languagesVisible = $("#menu-languages").is(":visible");
    var booksVisible = $("#menu-books").is(":visible");
    var aboutVisible = $("#menu-about").is(":visible");
    if (languagesVisible || aboutVisible) {
        if (languagesVisible) {
            $('#click-me-languages').removeClass('active');
            $('#click-me-books').addClass('active');
            $("#menu-languages").slideUp('slow', function () {
                $('#menu-books').slideToggle('slow');
            });
        }
        if (aboutVisible) {
            $('#click-me-about').removeClass('active');
            $('#click-me-books').addClass('active');
            $("#menu-about").slideUp('slow', function () {
                $('#menu-books').slideToggle('slow');
            });
        }
    } else {
        if (booksVisible) {
            $("#menu-books").slideToggle('slow', function () {
                $('#click-me-books').removeClass('active');
            });
        } else {
            $('#click-me-books').addClass('active');
            $("#menu-books").slideToggle('slow');
        }
    }
    
});

$('#click-me-about').click(function () {
    var languagesVisible = $("#menu-languages").is(":visible");
    var booksVisible = $("#menu-books").is(":visible");
    var aboutVisible = $("#menu-about").is(":visible");
    if (languagesVisible || booksVisible) {
        if (languagesVisible) {
            $('#click-me-languages').removeClass('active');
            $('#click-me-about').addClass('active');
            $("#menu-languages").slideUp('slow', function () {
                $('#menu-about').slideToggle('slow');
            });
        }
        if (booksVisible) {
            $('#click-me-books').removeClass('active');
            $('#click-me-about').addClass('active');
            $("#menu-books").slideUp('slow', function () {
                $('#menu-about').slideToggle('slow');
            });
        }
    } else {
        if (aboutVisible) {
            $("#menu-about").slideToggle('slow', function () {
                $('#click-me-about').removeClass('active');
            });
        } else {
            $('#click-me-about').addClass('active');
            $("#menu-about").slideToggle('slow');
        }
    }
    
 });

JSFiddle

    $('#click-me-idiomas').click(function () {
        var idiomasVisible = $("#menu-idiomas").is(":visible");
        var coleccionesVisible = $("#menu-colecciones").is(":visible");
        var nosotrosVisible = $("#menu-nosotros").is(":visible");
        if (coleccionesVisible || nosotrosVisible) {
            if (coleccionesVisible) {
                $('#click-me-colecciones').removeClass('active');
                $('#click-me-idiomas').addClass('active');
                $("#menu-colecciones").slideUp('slow', function () {
                    $('#menu-idiomas').slideToggle('slow');
                });
            }
            if (nosotrosVisible) {
                $('#click-me-nosotros').removeClass('active');
                $('#click-me-idiomas').addClass('active');
                $("#menu-nosotros").slideUp('slow', function () {
                    $('#menu-idiomas').slideToggle('slow');
                });
            }
        } else {
            if (idiomasVisible) {
                $("#menu-idiomas").slideToggle('slow', function () {
                    $('#click-me-idiomas').removeClass('active');
                });
            } else {
                $('#click-me-idiomas').addClass('active');
                $("#menu-idiomas").slideToggle('slow');
            }
        }

    });

    $('#click-me-colecciones').click(function () {
        var idiomasVisible = $("#menu-idiomas").is(":visible");
        var coleccionesVisible = $("#menu-colecciones").is(":visible");
        var nosotrosVisible = $("#menu-nosotros").is(":visible");
        if (idiomasVisible || nosotrosVisible) {
            if (idiomasVisible) {
                $('#click-me-idiomas').removeClass('active');
                $('#click-me-colecciones').addClass('active');
                $("#menu-idiomas").slideUp('slow', function () {
                    $('#menu-colecciones').slideToggle('slow');
                });
            }
            if (nosotrosVisible) {
                $('#click-me-nosotros').removeClass('active');
                $('#click-me-colecciones').addClass('active');
                $("#menu-nosotros").slideUp('slow', function () {
                    $('#menu-colecciones').slideToggle('slow');
                });
            }
        } else {
            if (coleccionesVisible) {
                $("#menu-colecciones").slideToggle('slow', function () {
                    $('#click-me-colecciones').removeClass('active');
                });
            } else {
                $('#click-me-colecciones').addClass('active');
                $("#menu-colecciones").slideToggle('slow');
            }
        }

    });

    $('#click-me-nosotros').click(function () {
        var idiomasVisible = $("#menu-idiomas").is(":visible");
        var coleccionesVisible = $("#menu-colecciones").is(":visible");
        var nosotrosVisible = $("#menu-nosotros").is(":visible");
        if (idiomasVisible || coleccionesVisible) {
            if (idiomasVisible) {
                $('#click-me-idiomas').removeClass('active');
                $('#click-me-nosotros').addClass('active');
                $("#menu-idiomas").slideUp('slow', function () {
                    $('#menu-nosotros').slideToggle('slow');
                });
            }
            if (coleccionesVisible) {
                $('#click-me-colecciones').removeClass('active');
                $('#click-me-nosotros').addClass('active');
                $("#menu-colecciones").slideUp('slow', function () {
                    $('#menu-nosotros').slideToggle('slow');
                });
            }
        } else {
            if (nosotrosVisible) {
                $("#menu-nosotros").slideToggle('slow', function () {
                    $('#click-me-nosotros').removeClass('active');
                });
            } else {
                $('#click-me-nosotros').addClass('active');
                $("#menu-nosotros").slideToggle('slow');
            }
        }

    });
added 221 characters in body
Source Link
Loading
corrected spelling
Source Link
Loading
Loading
edited title
Link
Loading
Post Reopened by RubberDuck, palacsint, Glenn Rogers, chillworld, otus
dedent of first line
Source Link
Glenn Rogers
  • 2.1k
  • 14
  • 18
Loading
added jquery code
Source Link
Loading
Post Closed as "Not suitable for this site" by Jamal
Attempted to improve title
Source Link
Jamal
  • 34.9k
  • 13
  • 133
  • 237
Loading
Pasted code into the question
Source Link
jfriend00
  • 3.9k
  • 14
  • 21
Loading
Source Link
Loading