Javascript tour.goTo(i)不工作

Javascript tour.goTo(i)不工作,javascript,twitter-bootstrap,bootstrap-tour,Javascript,Twitter Bootstrap,Bootstrap Tour,以下是我的参考代码: 我正在为我的应用程序使用引导程序 要求: 单击“下一步”时,我处于第一步,然后它将检查“#id2”的值。 如果id2值不为空,则应跳过该步骤并直接移动到第3步 为此,我正在尝试tour.goTo(3)。 但这是行不通的。 有什么帮助吗 tour.addSteps([ { element:" #id1", title: "1", content: "1st Content.",

以下是我的参考代码:

我正在为我的应用程序使用引导程序

要求:

  • 单击“下一步”时,我处于第一步,然后它将检查“#id2”的值。 如果id2值不为空,则应跳过该步骤并直接移动到第3步
为此,我正在尝试tour.goTo(3)。 但这是行不通的。 有什么帮助吗

tour.addSteps([
        {
            element:" #id1",
            title: "1",
            content: "1st Content.",
            placement: "top",
            onShow: function () {
                console.log('This is Onshow Function');
            },
            onNext: function () {       
                client_text = $('#id2').text();
                if(client_text != ''){
                    console.log('----------client code present----------');
                    tour.goTo(3)
                    //tour.next();
                    //tour.hideStep(2)
                    return false
                }
                else{
                    console.log('-------client code not present--------');
                }
            },
            onHidden:function () {      
                tour.hideStep(2)
                }
        },
        {
            element:" #id2",
            title: "2",
            content: "2nd Content",
            placement: "top",
            onShow: function () {
                console.log('second step');         
            }
        },
        {
            element:" #id3",
            title: "3",
            content: "3rd Content",
            placement: "top",           
            onShow: function () {
                console.log('third step');          
            }           
        }
    ]);

我已经摆弄过了,似乎你应该把goTo()逻辑放在你想跳过的步骤上:

HTML

<div id="id1">One</div>
<div id="id2">Two</div>
<div id="id3">Three</div>

goTo(i)接受一个基于0的索引i。也许你应该试着转到(2)而不是?好的,是的,正在工作。但第二步仍然可见。我试过onHidden和onhide,但第二步仍然可见。你说得对。我已经摆弄过了,似乎你应该把goTo()逻辑放在你想跳过的步骤上。看看这个,非常感谢。您可以添加这个JSFIDLE作为答案,以便我将其标记为接受。这对于进入下一步很好,但我也想移动上一步。所以尝试使用prev,但它不起作用(问题链接是:)如何使用goTo()函数跳过步骤
var tour = new Tour();

tour.addSteps([
        {
            element:" #id1",
            title: "1",
            content: "1st Content.",
            placement: "top",
            onShow: function () {
                console.log('This is Onshow Function');
            },
        },
        {
            element:" #id2",
            title: "2",
            content: "2nd Content",
            placement: "top",
            onShow: function () {
                console.log('second step');         
            },
            onShown: function () {       
                client_text = $('#id2').text();
                if(client_text != ''){
                    console.log('----------client code present----------');
                    tour.goTo(2)    
                }
                else{
                    console.log('-------client code not present--------');
                }
            },
        },
        {
            element:" #id3",
            title: "3",
            content: "3rd Content",
            placement: "top",           
            onShow: function () {
                console.log('third step');          
            }           
        }
    ]);

tour.init();

tour.restart();