分享一個與jQuery相關的TypeError: $ is not a function問題解決過程


最近碰到一個比較奇葩的問題,估計很多人也遇到過,就是jQuery可能會遇到的‘$ is not a function’,不過我碰到的這個問題比較怪異,解決該問題也頗費了一番周折,現在給大家分享一下。

運行環境描述

我是通過requireJS進行js及css的模塊化加載,傳統的加載js沒問題,就是在通過requireJS加載jQuery時,碰到了問題。
給大家看看我的requireJS的配置js,見下圖:

 

 

 以上是模塊化加載js的部分,然后咱們再看看頁面中模塊化加載jQery的部分,見下圖:

 

 

 運行工程,報下面的錯誤:

 

 

 

查找問題的曲折過程

本以為這就是一個相當小的問題,但沒想到頭發都快揪下來了,把找問題試過的方法簡潔記錄如下,記錄得很簡潔,但過程實在不輕松。

  1. jQuery加載順序造成的,jQuery一定要是首先加載,檢查代碼,加載順序正常,解決失敗
  2. CDN加載jQuery有問題,通過直接訪問CDN中配置的URL,一切正常,解決失敗
  3. 懷疑jQuery的版本和requireJS版本不一致,這個可就難為我了,各種試都不行,最后采用之前工程中成功的項目版本,還是不行,解決失敗
  4. 到現在為止,已經弄得有點精疲力盡了,各種試驗、各種失敗,真是備受打擊,本來覺得幾分鍾就能解決的問題的,沒想到一弄就是幾個小時,最后也試過吧‘$’替換為‘jquery’,還是不行,一看時間已經到凌晨了。
    NND,真是活見鬼了,洗洗睡吧(睡也睡不着,鼓眼還在想問題在哪,鼓着鼓着就睡死過去了)。

峰回路轉,解決問題,但是毫無成就感

第二天醒過來就開始弄,比較現在的配置和以前配置的差別,發現了一個問題,見下圖:

 

 

 馬上看找找查找了一下jQuery的源碼,見下圖:

 

 

從上面看,‘jQuery’還真是關鍵字!
現在,把‘jQuery’替換成‘jquery’,再試試看還有問題沒有,一試,哇哈哈,問題解決啦啦啦啦啦。。。
這就是以上碰到問題的解決過程,其實就是requireJS在模塊化加載jQuery時,取得別名‘jQuery’好死不死的正好碰到源碼中的關鍵字,從而引發TypeError: $ is not a function的問題。

這說什么好呢,唉。。。

WEB項目開發中碰到的問題千奇百怪,大家想了解對如何快速的掌握Spring Boot,可以參見視頻

51CTO:Spring Boot+Bootstrap開發小而完整web項目 
騰訊課堂:Spring Boot+Bootstrap開發小而完整web項目
CSDN學院:Spring Boot+Bootstrap開發小而完整web項目
網易雲課堂:Spring Boot+Bootstrap開發小而完整web項目

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM