我在一个页面上有一些来自Jquery UI的多选框,这些框在Chrome& Safari但由于某种原因没有在Firefox中...当我在Firefox中加载错误控制台时,我看到:
Error: $.widget is not a function
Source File: http://localhost:3000/javascripts/jquery.multiselect.js?1302660373
Line: 563
任何想法为什么?
编辑:该行本身在open函数中,它表示“//对初始化后的选项更改做出反应”
// open the menu
open: function(e){
var self = this,
button = this.button,
menu = this.menu,
speed = this.speed,
o = this.options;
widget: function(){
return this.menu;
},
// react to option changes after initialization
_setOption: function( key, value ){
var menu = this.menu;
switch(key){
case 'header':
menu.find('div.ui-multiselect-header')[ value ? 'show' : 'hide' ]();
答案 0 :(得分:15)
我假设您正在使用jQuery Multiselect plugin ...这取决于jQuery UI。
听起来你没有包含足够的jQuery UI库或者没有包含它们。如果构建custom download,则需要包含jQuery UI的核心部分(包括 Widget )。或者只是下载整个jQuery UI并改为包含它。
答案 1 :(得分:2)
对于其他任何获得此项但有要求的人;确保以正确的顺序包含Javascript文件。这个错误是由我的jquery-ui.js包含在多选js文件之后引起的。
答案 2 :(得分:0)
实际上,如果您收到此错误,那么
a)按@andyb answer - 您还没有包含正确的jQuery UI组件
OR
b)您的DOM尚未使用正确的$.widget
加载,因此您的函数在加载$.widget
之前尝试调用。要解决问题,请确保在函数之前调用$ .widget
答案 3 :(得分:0)
这个答案可能与提问者的情况无关,但我把它放在这里是为了别人用Google搜索问题。
我使用Rails 3.2得到了这个错误,并通过删除(重命名)public / assets文件夹来修复它。似乎资产管道仍存在很多问题。我不知道细节,但有其他Javascript失败以这种方式修复。