我正在尝试使用bootstrap-rails gem在我的rails应用程序中包含bootstrap rails来使bootstrap-tour工作。
我已经看到很多其他问题,这些问题可以通过清除本地存储来解决,而我已经尝试过该修复程序,但无济于事。我的问题是不同的是,当它到达init函数时会引发错误。
TypeError: tour.init is not a function at HTMLBodyElement.ideasTour
message
:
"tour.init is not a function"
stack
:
"TypeError: tour.init is not a function
我的cofeescript被编译为与上的示例匹配的js
bootstrap tour
介绍咖啡
ideasTour = ->
console.log 'function was called'
tour = new Tour({
steps:[
{
element: "#step1"
title: 'Ideas'
content: 'Ideas are the encapsulating class...'
}
{
element: "#step2"
title: "Create a new Idea"
content: 'lets create a new Idea, click on the add button to start.'
}
],
debug: true,
storage: false
})
console.log 'options set initializing...'
tour.init()
console.log 'initialized starting...'
tour.start(true)
console.log 'called start'
$ ->
$('body').on('tour', ideasTour)
我的application.js
//= require jquery
//= require jquery_ujs
//= require best_in_place
//= require bootstrap
//= require bootstrap-tour
//= require turbolinks
//= require_tree .
$ = jQuery;
任何帮助是极大的赞赏。
最佳答案
看来这是一个较旧的问题,但是这是由于在将Bootstrap-tour库加载到页面上之前尝试使用tour.init()引起的。确保对bootstrap-tour.js或bootstrap-tour-min.js的引用。
尽管将javascript库引用放置在标签上方页面底部是一种很好的做法,但是请尝试将库(如果不使用独立的bootstrap-tour,则放在jQuery库中),看看是否可以消除此错误“竞赛条件”。
如果您使用的是jquery,则可以通过将tour.init()调用放入其中来利用jQuery(document).ready函数,以便它在尝试调用之前等待所有页面资源都加载到DOM中。它。
关于javascript - Bootstrap-tour tour.init不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41231701/