Uncaught TypeError: undefined is not a function on loading jquery-min.js

前端 未结 13 737
北荒
北荒 2020-11-28 22:55

I\'m building a normal webpage which requires me to load about five CSS files and ten Javascript files.

  • When loading them separately in the HTML page, my webpa
相关标签:
13条回答
  • 2020-11-28 23:40

    I got this when I accidentally passed too many parameters into a jquery function that only expected one callback parameter.

    For others troubleshooting: make sure you check all your jquery function calls for extra parameters.

    0 讨论(0)
  • 2020-11-28 23:41

    Make sure you have commented out any commentaries. Sometimes when copying and pasting you will leave out the "/*!"

    Also when you go into the console they will list your errors and you should take it one at a time. If you see "Uncaught SyntaxError: Unexpected token * " That might mean it is reading your js file and it isn't getting past the first line.

    /*! * jquery.tools 1.1.2 - The missing UI library for the Web * * [tools.tabs-1.0.4, tools.tooltip-1.1.2, tools.scrollable-1.1.2, tools.overlay-1.1.2, tools.expose-1.0.5] * * Copyright (c) 2009 Tero Piirainen * http://flowplayer.org/tools/ * File generated: Wed Oct 07 09:40:16 GMT 2009 */

    0 讨论(0)
  • 2020-11-28 23:47

    I had this problem recently with the jQuery Validation plug-in, using Squishit, also getting the js error:

    "undefined is not a function"

    I fixed it by changing the reference to the unminified jquery.validate.js file, rather than jquery.validate.min.js.

    @MvcHtmlString.Create(
        @SquishIt.Framework.Bundle.JavaScript()
            .Add("~/Scripts/Libraries/jquery-1.8.2.min.js")
            .Add("~/Scripts/Libraries/jquery-ui-1.9.1.custom.min.js")
            .Add("~/Scripts/Libraries/jquery.unobtrusive-ajax.min.js")
            .Add("~/Scripts/Libraries/jquery.validate.js")
            .Add("~/Scripts/Libraries/jquery.validate.unobtrusive.js")
             ... more files
    

    I think that the minified version of certain files, when further compressed using Squishit, for example, might in some cases not deal with missing semi-colons and the like, as @Dustin suggests, so you might have to experiment with which files you can doubly compress, and which you just leave to Squishit or whatever you're bundling with.

    0 讨论(0)
  • 2020-11-28 23:49

    I just had the same message with the following code (in IcedCoffeeScript):

    f = (err,cb) ->
      cb null, true
    
    await f defer err, res
    console.log err if err  
    

    This seemed to me like regular ICS code. I unfolded the await-defer construct to regular CoffeeScript:

    f (err,res) ->
      console.log err if err
    

    What really happend was that I tried to pass 1 callback function( with 2 parameters ) to function f expecting two parameters, effectively not setting cb inside f, which the compiler correctly reported as undefined is not a function.

    The mistake happened because I blindly pasted callback-style boilerplate code. f doesn't need an err parameter passed into it, thus should simply be:

    f = (cb) ->
      cb null, true
    f (err,res) ->
      console.log err if err
    

    In the general case, I'd recommend to double-check function signatures and invocations for matching arities. The call-stack in the error message should be able to provide helpful hints.

    In your special case, I recommend looking for function definitions appearing twice in the merged file, with different signatures, or assignments to global variables holding functions.

    0 讨论(0)
  • 2020-11-28 23:50

    Assuming this problem still has not be resolved, a lot of individual files don't end their code with a semicolon. Most jQuery scripts end with (jQuery) and you need to have (jQuery);.

    As separate files the script will load just fine but as one individual file you need the semicolons.

    0 讨论(0)
  • 2020-11-28 23:50

    You might have to re-check the order in which you are merging the files, it should be something like:

    1. jquery.min.js
    2. jquery-ui.js
    3. any third party plugins you loading
    4. your custom JS
    0 讨论(0)
提交回复
热议问题