Ergebnis 1 bis 9 von 9

Thema: accordion javascript nach Ajax ausführen

  1. #1
    Contao-Fan
    Registriert seit
    16.01.2012.
    Beiträge
    418

    Standard accordion javascript nach Ajax ausführen

    Guten Tag,

    hab eine Liste mit einträgen in denen jeweils ein Accordion mit Inhalt ausgegeben wird.
    Diese Liste filtere ich mit AJAX und geb dann eine neue Liste (der aufbau ist identisch) aus. (natürlich ohne Pagereload)

    Das Accordion funktioniert nach der AJAX abfrage nicht mehr (so als ob das Javascript nicht eingebunden wäre)
    Meine vermutung ist, dass man irgendeine Function nach erfolgreicher Ajaxabfrage ausführen muss. Nur leider finde ich nicht die passende.

    Könnt ihr mir helfen? Vielen Dank.

  2. #2
    Contao-Fan
    Registriert seit
    16.01.2012.
    Beiträge
    418

    Standard

    keiner einer Idee?

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.094
    Partner-ID
    10107

    Standard

    Nachdem du deinen Inhalt per AJAX geladen hast, musst du auch das Accordion wieder initialisieren lassen, da das ja neue DOM Elemente sind.

  4. #4
    Contao-Fan
    Registriert seit
    16.01.2012.
    Beiträge
    418

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nachdem du deinen Inhalt per AJAX geladen hast, musst du auch das Accordion wieder initialisieren lassen, da das ja neue DOM Elemente sind.
    Hi danke! Ja genau Ich finde nur nicht den entscheidenden Code den ich ausführen muss. Hab es mit dem Js code aus dem j_accordion template beim Success der Ajax abfrage versucht. Funktioniert aber nicht - es passiert gar nichts. (das alert(test) wird aber (sofern einkommentiert) zur richtigen Zeit angezeigt.

    Code:
    		 (function($) {
        $(document).ready(function() {
    	//alert('test');
    	
          $(document).accordion({
            // Put custom options here
           collapsible: true,
          active: false,  
            heightStyle: 'content',
            header: 'div.toggler',
            collapsible: true
          });
          var activate = function(tog) {
            var tgs = $('div.toggler');
            tgs.removeClass('active');
            tog.addClass('active');
            tgs.next('div.accordion').attr('aria-hidden', 'true');
            tog.next('div.accordion').attr('aria-hidden', 'false');
          };
          $('div.toggler').focus(function() {
            $('div.toggler').attr('tabindex', 0);
            $(this).attr('tabindex', -1);
          }).blur(function() {
            $(this).attr('tabindex', 0);
          }).click(function() {
            activate($(this));
          }).keypress(function(event) {
            if (event.keyCode == 13) activate($(this));
          });
        });
      })(jQuery);

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.094
    Partner-ID
    10107

    Standard

    Nein, du musst, nachdem du deinen Inhalt per AJAX geladen hast, die Accordions aus den neu geladenen Inhalten initialisieren.

  6. #6
    Contao-Nutzer
    Registriert seit
    12.05.2015.
    Beiträge
    61

    Standard Video Start bei aufgeklapptem Accordion

    Hallo zusammen

    Ich möchte mich gerne dieser Frage anschliessen.

    Ich würde dem Javascript beim Öffnen gerne folgende Funktion hinzufügen:
    HTML-Code:
    $(function(){
       $(".toogle").click(function(){
          var videoelement= $(this).parent().parent().find("video").get(0);
          videoelement.play();
       });
    });

    Leider sehe ich im j_accordion template nicht, wie ich das unter bringen könnte. Ich habe das bereits auf alle möglichen Arten versucht.

    Hätte vielleicht jemand hier eine Idee?


    Vielen Dank im Voraus..


    Edit: Ich sehe nicht, wie ich einen neuen Thread erstellen kann..
    Geändert von aitana (17.01.2024 um 15:03 Uhr)

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.718
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von aitana Beitrag anzeigen
    Edit: Ich sehe nicht, wie ich einen neuen Thread erstellen kann..
    https://community.contao.org/de/foru...wickler-Fragen => links oben "+ Thema erstellen"

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.718
    User beschenken
    Wunschliste

    Standard

    ggf. in activate https://github.com/contao/contao/blo...dion.html5#L14


    PHP-Code:
          activate: function(eventui) {
            
    ui.newHeader.addClass('active');
            
    ui.oldHeader.removeClass('active');
            $(
    '.toggler').attr('tabindex'0);
            
    let videoelement = $('.toggler') ??? hier nochmal gucken im DOM .parent().parent().find("video").get(0);
            
    videoelement.play();
          } 

  9. #9
    Contao-Nutzer
    Registriert seit
    12.05.2015.
    Beiträge
    61

    Standard

    Vielen Dank für deine Antwort, zonky.
    Leider startet mit diesem Script nur das 1. Video. Die Videos in den darauffolgenden Accordions dann nicht mehr.

    Ich habe für diese Frage nun einen eigenen Thread erstellt, da es hier offtopic war.
    https://community.contao.org/de/show...ordion-starten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •