开发者

error on firefox: $.widget is not a function

I have a few multiselect boxes from the Jquery UI on a page that work perfectly well in Chrome & Safari but not in Firefox for some reason... when I load the Error Console in Firefox I s开发者_如何学运维ee:

Error: $.widget is not a function
Source File: http://localhost:3000/javascripts/jquery.multiselect.js?1302660373
 Line: 563

Any ideas why?


edit: the line itself is within the open function right where it says "// react to option changes after initialization"

    // 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' ]();


I am assuming you are using the jQuery Multiselect plugin… which depends on jQuery UI.

Sounds like you have not included enough of the jQuery UI library or just none of it. You need to include the core parts of jQuery UI (including Widget) if you build a custom download. Or just download the whole jQuery UI and include it instead.


For anyone else who is getting this but has the requirements; make sure you are including the Javascript files in the correct order. This error was being caused by my jquery-ui.js being included after the multiselect js file.


This answer is probably unrelated to the situation of the questioner, but I put it here for the sake of others Googling the question.

I got this error using Rails 3.2 and fixed it by deleting (renaming) the public/assets folder. It seems there are a lot of problems with the assets pipeline still. I don't know the details but have had other Javascript failures that are fixed this way.


Actually if you are getting this error then it's either

a) per @andyb answer - you haven't included the correct jQuery UI components

OR

b) your DOM is not loaded yet with the correct $.widget and therefore your function is attempting to call before $.widget has loaded. to fix the problem, ensure $.widget is called BEFORE your function

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜