忽略tour.js中巡视的缺失元素

Pur*_*rus 5 javascript jquery intro.js

我在动态页面中使用intro.js,如果提供的所有元素都存在,那么巡演就没有任何问题了.

但是如果任何元素不存在,则动态生成页面,游览停止并且必须按下NEXT按钮两次以继续进行.

如果元素不存在,有没有办法完全跳过这个步骤?

例:

intro.setOptions({
   steps[
      {"element":".ow_status","intro":"status"}, 
      {"element":".ow_mailbox","intro":"mailbox"},
      {"element":".ow_test","intro":"test"}
   ] 
});
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,如果不存在类ow_mailbox的元素,则游览将在中间停止并显示3个步骤,尽管只有2个具有有效元素.

Nei*_*ner 17

我们可以过滤数组并只返回存在的元素.新选项如下所示:

intro.setOptions({
   steps: [
      {"element":".ow_status","intro":"status"}, 
      {"element":".ow_mailbox","intro":"mailbox"},
      {"element":".ow_test","intro":"test"}
   ].filter(function (obj) {
      return $(obj.element).length;
   })
});
Run Code Online (Sandbox Code Playgroud)