在jquery
中,$
是jquery
的別名,所有使用$的地方也都可以使用jquery
來替換,如$('#msg')
等同於jquery('#msg')
的寫法。然而,當我們引入多個js庫後,在另外乙個js庫中也定義了$符號的話,那麼我們在使用$符號時就發生了衝突。下面以引入兩個庫檔案jquery.js
和prototype.js
為例來進行說明:
這種使用語句塊的方法非常有用,在我們自己寫jquery外掛程式時,應該都使用這種寫法,因為我們不知道具體工作過程中是如何順序引入各種js庫的,而這種語句塊的寫法卻能遮蔽衝突。首先
(function(){})()
這種寫法 是建立了乙個匿名的方法並立即執行(function(){})
這個是匿名方法後面的括號就是立即呼叫了這個方法。
這樣做可以建立乙個作用域以保證內部變數與外部變數不發生衝突,比如$ jquery 等jquery內部定義的變數。
(function($){})(jquery)
這個寫法主要的作用還是保證jquery不與其他類庫或變數有衝突 首先是要保證jquery
這個變數名與外部沒有衝突(jquery內部$與jquery是同乙個東西 有兩個名字的原因就是怕$與其他變數名有衝突二jquery與其他變數衝突的機率非常小)並傳入匿名物件,匿名物件給引數起名叫做$(其實和jquery內部是一樣的) 然後你就可以自由的在(function($){})(jquery)
裡寫你的外掛程式而不需要考慮與外界變數是否存在衝突
jQuery命名庫衝突的問題
今天在使用jquery cookie時,其他時候都用的好好的,只有在 cookie這裡報錯了,原因說 cookie is not a function,而我是很明顯匯入了cookie庫的,所以我覺得應該是命名空間衝突的問題,於是我用以下辦法解決了問題 function var j jquery.no...
Sbt 排除依賴衝突詳細解析
1.sbt 依賴樹 參考 dependencygraph sbt plugin 安裝外掛程式 建立檔案 sbt 1.0 plugins plugins.sbt 新增內容 addsbtplugin net.virtual void sbt dependency graph 0.9.0 外掛程式啟動 s...
jQuery的詳細解析以及用法
jquery是乙個js庫,免費開源易用,提供了我們開發中常用到的操作dom的api,解決了我們使用js操作dom常遇到的一些問題,強大的選擇器,簡化我們的操作a.輕量級b.富應用c.dom操作 事件處理 運動動畫 ajaxd.跨瀏覽器 不再考慮瀏覽器相容 e.鏈式呼叫f.隱式迭代g.豐富的外掛程式庫...