Jquery - Identische Buttons verhalten sich unterschiedlich?

  • geschlossen
  • JavaScript

  • Taxel
  • 4699 Aufrufe 0 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Jquery - Identische Buttons verhalten sich unterschiedlich?

    Hi Leute,
    Ich arbeite derzeit an einer Seite, auf der später nicht nur farbige Kästen, sondern wirkliche Bilder zu sehen sein sollen. Außerdem sollen diese Bilder nach den Ordnern in denen sie liegen sortiert werden, da diese verschiedene Kategorien darstellen. Für jede Kategorie wird ein Button dynamisch eingefügt und soll beim Klick alle Elemente unsichtbar machen, die nicht diese Kategorie haben. Dies funktioniert auch beim ersten Button sehr gut, beim zweiten hingegen nicht so sehr. Doch seht selbst:
    Galerie - Johann Miedl - Fotografie
    Der relevante Part des Javascript ist wohl:

    Quellcode

    1. $(document).ready(function(){
    2. var $container = $('.ce_gallery ul');
    3. var unhidden = true;
    4. $('.ce_gallery ul li a').each(function(){
    5. var path = $(this).attr("href");
    6. var arr = path.split('/');
    7. var cat = arr[3]; //cat = "Landschaften" oder so
    8. $(this).parent().parent().addClass(cat);
    9. if($("#categories button#" + cat).length == 0){
    10. $("#categories").append('<button id="'+cat+'"> '+cat+'</button>');
    11. }
    12. });
    13. $container.masonry({
    14. itemSelector : 'li',
    15. isFitWidth: true,
    16. isAnimated: true
    17. });
    18. $('#categories button').click(function(){
    19. var ths = $(this);
    20. var cat = $(this).attr('id');
    21. if(ths.hasClass('active')){
    22. $('.ce_gallery ul li').show();
    23. $('.ce_gallery ul li a').addClass('cboxElement');
    24. ths.removeClass('active');
    25. }else{
    26. //show all
    27. $('#categories button.active').removeClass("active");
    28. $('.ce_gallery ul li').show();
    29. //Hide all with category cat
    30. $('.ce_gallery ul li').each(function(){
    31. if( !$(this).hasClass(cat)){
    32. $(this).find('a').removeClass('cboxElement');
    33. $(this).hide();
    34. }
    35. });
    36. ths.addClass('active');
    37. }
    38. $container.masonry();
    39. return false;
    40. });
    41. });
    Alles anzeigen


    Masonry ermöglicht die automatische Anordnung der Elemente.

    Ich danke schonmal im Vorraus

    Taxel
    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    Irren ist menschlich, doch im Irrtum zu verharren ist ein Zeichen von Dummheit.

    -Cicero