2017-02-16 53 views
1

我有一个IntroJS演示,在JSFiddle中正常工作。IntroJS,未捕获参考错误

当我与我的应用程序将其合并,按钮“点击这里给我测试IntroJS”回报: Uncaught ReferenceError: intro is not defined at HTMLButtonElement.onclick

  • 我查了正确IntroJS CSS和JS库通过codepen CDN加载。
  • 我检查了函数的拼写。测试警报按钮正确触发..
  • 我试过<body>和Codepen HTML头部分中的其他JSfiddle包装。我之前将Codepen的代码段移动到了JSfiddle,并且意识到通常的错误。

我认为这是一个范围问题,但我不确定下一步该怎么做。

的JS是在这里,在线路381

intro = introJs(); 
    intro.setOptions({ 
    'showStepNumbers': false 
    }); 
    intro.start(); 

function testAlert() { 
    alert("alert"); 
}; 

按钮是在这里:

<button onclick="intro.start();">Click me to Test IntroJS</button> 

full app is here,按钮按下一半:

+1

codepen在这里工作:http://codepen.io/mayank_shubham/pen/pRBPjr –

+0

我可以让它工作OK,作为一个独立的codepen,Shubham,但是当我将代码与我的大型应用程序合并时,按钮不再工作。 https://codepen.io/Teeke/pen/mRgWLg – RubyRube

+0

当你从内联事件处理程序调用'intro.start()'时,你必须确保'intro'对象被定义或暴露在全局范围内例如包装到DOMContentLoaded回调中)。你可以在你的真实应用程序中定义你的'intro'对象(和'start'函数加上相关代码)在哪里定义? – mrlew

回答

2

在codepen例子中的问题( https://codepen.io/Teeke/pen/mRgWLg)是在355行有一个JavaScript错误:

setText(playButton, "Play");

变量playButton尚未定义。这阻止了其余的JavaScript工作。一旦我注释了所有对playButton的引用,intro.js代码将按预期执行。

+0

你真的很敏锐的眼睛,:) –

+0

谢谢克拉蒙德,这工作。我看到playButton错误出现在控制台中,但我想我可以放弃它。我必须记住,在JavaScript程序的一个区域中的错误可能会在脚本的不同部分中导致奇怪的错误。学过的知识。干杯。 – RubyRube

相关问题