Bootstrap.js 抛出选择器选项错误:在 windows.document 对象上初始化工具提示时必须指定选择器选项

Posted

技术标签:

【中文标题】Bootstrap.js 抛出选择器选项错误:在 windows.document 对象上初始化工具提示时必须指定选择器选项【英文标题】:Bootstrap.js throws a selector option error: selector option must be specified when initializing tooltip on the windows.document object 【发布时间】:2016-10-16 20:48:37 【问题描述】:

当我尝试在 bootstrap.js 中运行我的 Web 应用程序时,我收到以下错误:

localhost:7904/Scripts/bootstrap.js 中第 1306 行第 7 列的未处理异常 0x800a139e - javascript 运行时错误:在 window.document 对象上初始化工具提示时必须指定 selector 选项!

这是它所指的以下代码行:

  Tooltip.prototype.init = function (type, element, options) 
this.enabled   = true
this.type      = type
this.$element  = $(element)
this.options   = this.getOptions(options)
this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
this.inState   =  click: false, hover: false, focus: false 

if (this.$element[0] instanceof document.constructor && !this.options.selector) 
  //LINE 1306 IS RIGHT HERE
  throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')


var triggers = this.options.trigger.split(' ')

for (var i = triggers.length; i--;) 
  var trigger = triggers[i]

  if (trigger == 'click') 
    this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
   else if (trigger != 'manual') 
    var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
    var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'

    this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
    this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
  


this.options.selector ?
  (this._options = $.extend(, this.options,  trigger: 'manual', selector: '' )) :
  this.fixTitle()

任何关于此事的帮助将不胜感激,谢谢。

【问题讨论】:

跟踪错误的堆栈跟踪,直到找到您亲自编写的代码 bootstrap.js:1306 未捕获的错误:selector 在 window.document 对象上初始化工具提示时必须指定选项!Tooltip.init @ bootstrap.js:1306Tooltip @ bootstrap.js:1274(anonymous函数)@bootstrap.js:1743each@jquery-2.2.0.js:360each@jquery-2.2.0.js:137Plugin@bootstrap.js:1737(匿名函数)@?AspxAutoDetectCookieSupport=1:71fire@jquery-2.2。 0.js:3182fireWith @jquery-2.2.0.js:3312ready @jquery-2.2.0.js:3531completed @jquery-2.2.0.js:3547 【参考方案1】:

我按以下方式重新排序了库:

<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw=" crossorigin="anonymous"></script>

接下来我把所有的个人 javascripts 放在后面。这似乎解决了这个问题。

【讨论】:

这行得通! ...,即使我有不同的jquerys版本或custom js版本,为什么会这样? 我猜依赖关系是这样的,如果它们不是这个顺序,它会抛出一个错误,有时因为库很大,所以很难预测。不过我很高兴它有所帮助! 但是在那之后还有第二个问题***.com/questions/30190437/…

以上是关于Bootstrap.js 抛出选择器选项错误:在 windows.document 对象上初始化工具提示时必须指定选择器选项的主要内容,如果未能解决你的问题,请参考以下文章

UISwipeGestureRecognizer 抛出无法识别的选择器发送错误

Ng2 Bootstrap 的日期选择器在无法读取 getFullYear() 时不断抛出错误

Flutter Web:文件选择器抛出“无效参数(路径):不能为空”错误

Swift 3 TapGestureRecognizer 选择器抛出错误

Bootstrap-select on click 获取点击值

Bootstrap 2.1 javascript嵌套选项卡:内部选项卡关闭外部选项卡