2017-01-25 3 views
1

Я использую introJS, и наша команда разработчиков шаблонов может использовать атрибут int-intro, но они также используют вкладки и другие javascript для скрытия или отображения некоторых элементов.Как пропустить невидимые элементы с помощью метода атрибутов intros

При запуске introJS для скрытых элементов (либо скрытых, либо на другой вкладке) отображается направляющая в левом верхнем положении (0,0).

Есть ли способ, мы можем пропустить невидимые элементы, но используя только метод атрибута. Мы можем добавить любой js-файл, поэтому, если мы сможем настроить introjs один раз для достижения этого и включить этот файл.

спасибо.

ответ

1

Хорошо,

Так я достиг этого с помощью функции-оболочки, оставляя здесь для других нуждающихся.

Это моя функция обертка выглядит

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(); 
} 

Таким образом, мы все еще используем атрибут и скрытые элементы приглушены или вырезаны интро.

Работаю хорошо для меня :)