2017-01-25 5 views
1

Ich benutze IntroJS und unser Template-Designer-Team kann nur Data-Intro-Attribut verwenden, aber sie verwenden auch Registerkarten und andere Javascript, um einige Elemente zu verbergen oder anzuzeigen.So überspringe ich nicht sichtbare Elemente mit Intros Attribut Methode

Wenn introJS ausgeführt wird, zeigt es für diese ausgeblendeten Elemente (entweder ausgeblendet oder in einer anderen Registerkarte) die Führung oben links (0,0) an.

Gibt es eine Möglichkeit, können wir nicht sichtbare Elemente überspringen, aber nur Attributmethode verwenden. Wir können jede js-Datei hinzufügen, also wenn wir Introjs einmal konfigurieren können, um dies zu erreichen und diese Datei einzuschließen.

Vielen Dank.

Antwort

1

Okay,

So erreichte ich es durch eine Wrapper-Funktion und hier für andere in Not zu verlassen.

Dies ist meine Wrapper-Funktion sieht aus wie

runIntro: function(object){ 

    $('[data-intro]:hidden').each(function(index,obj){ 
     var $t = $(this); 
     $t 
      .attr({ 
       'data-intro-hidden' : $t.attr('data-intro'), 
      }) 
      .removeAttr('data-intro') 
     ; 
    }); 

    $('[data-intro-hidden]:visible').each(function(index,obj){ 
     var $t = $(this); 
     $t 
      .attr({ 
       'data-intro' : $t.attr('data-intro-hidden'), 
      }) 
      .removeAttr('data-intro-hidden') 
     ; 
    }); 

    if(typeof object === undefined) 
     introJs().start(); 
    else 
     introJs(object).start(); 
} 

Auf diese Weise werden wir noch Attribut und versteckte Elemente sind stumm geschaltet oder übersprungen für Intro.

Funktioniert gut für mich :)

Verwandte Themen