简体   繁体   English

如何在Bootstrap Tour中跳过10个步骤?

[英]How to skip 10 steps in Bootstrap Tour?

I have a situation, when I have a tour containing eleven steps. 我有一个情况,当我有一个包含十一个步骤的旅游。

In each step the popup contains "Prev", "Next", "End Tour" buttons. 在每个步骤中,弹出窗口包含“上一个”,“下一个”,“结束巡回”按钮。
Instead of using "End Tour" to "skip", I try to skip all the steps and go to the 11th step, but I can't get this to work. 我没有使用“结束旅行”来“跳过”,而是试图跳过所有步骤并进入第11步,但我无法让它工作。

steps: [
    {
        element: "#mobile",
        title: "Mobile Number",
        content: "Click ‘Next’ to view the next search field, Click ‘Previous’ to view the previous search field and click ‘skip’ to select End result.",
        placement: "right",
        backdrop: true,
        orphan: true,
        template: function (step) {
            return "<div class='popover tour'><div class='arrow'></div><h3 class='popover-title'></h3><div class='popover-content'></div><div class='popover-navigation'><button class='btn btn-xs btn-pink' data-role='prev'>« Prev</button><span>&nbsp;</span><button class='btn btn-xs btn-danger' data-role='next'>Next »</button><span>&nbsp;</span><button class='btn btn-xs btn-success' data-role='skip'>Skip</button> </div>   </nav>  </div>"
        },
        onNext: function () {
            dir = 'next';
        },
        onPrev: function () {
        },
        onShown: function () {
        }
    }
]

Here i am using data-role as "skip ".and how can i use this as a function like that onShow() , onEnd() , etc. 这里我使用数据角色作为“跳过”。我如何将其用作onShow()onEnd()等函数。

I tried goTo(i) method also not working. 我试过goTo(i)方法也不行。

So, after reading DOCs - there is no method out-of-box to do skip steps. 因此,在阅读DOC之后 - 没有方法可以开箱即可跳过步骤。

But we can very easily build our own. 但我们可以很容易地建立自己的。


Simple solution (for exactly this scenario with 3 steps): 简单的解决方案 (对于具有3个步骤的确切情况):

1.) add button role skip (our, new, role): 1.)添加按钮角色跳过(我们的,新的,角色):

<button class='btn btn-xs btn-success' data-role='skip'>Skip</button>

2.) write method for skipping that catches skip button click: 2.)写跳过捕获跳过按钮的方法点击:

$("body").on("click","button",function(){
    if($(this).attr("data-role") === 'skip'){
        alert("skip pressed :)");
        tour.goTo(2);        
    }
});

Less simple solution (for all scenarios): 不太简单的解决方案 (针对所有场景):

1.) add buttons with role skip (our, new, role): 1.)添加带有角色跳过的按钮(我们的,新的,角色):

<button class='btn btn-xs btn-success' data-role='skip'>Skip</button>

...

<button class='btn btn-xs btn-success' data-role='skip'>Skip</button>

...

<button class='btn btn-xs btn-success' data-role='skip'>Skip</button>

...

etc

2.) have a method to: a.) find all steps b.) catch clicked button (skip) and it's step number (let's say x)) c.) goTo step x+1 2.)有一个方法:a。)找到所有步骤b。)抓住点击按钮(跳过)和它的步骤编号(让我们说x))c。)goTo step x + 1


Advanced solution : 高级解决方案

extend Jquery plugin and add cross-scenario code to it 扩展Jquery插件并向其添加交叉方案代码

you can use this below code to achive this , For me its working 你可以使用下面的代码来实现这个,对我来说它的工作原理

 onNext: function(tour){
  var curr=parseInt(tour.getState("current_step"));
  while(true){
    curr+=1;
    var step=tour.getStep(curr);
    //TODO: check if it's undefined
    if($(step.element).length){
      tour.goto(curr);
      return curr;
    }
  }
},
onPrevious: function(tour){
  var curr=parseInt(tour.getState("current_step"));
  while(true){
    curr-=1;
    var step=tour.getStep(curr);
    //TODO: check if it's undefined
    if($(step.element).length){
      tour.goto(curr);
      return curr;
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM