jQuery的$命名衝突
大家知道以下兩種寫法是等同的,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼$("#thediv").width(); jQuery("#thediv").width();
也就是說$是jQuery的別稱,但如果不僅引入jQuery庫,也引入了其他的庫,並且也定義了$符號的話,就有可能會導致衝突的現象,例如prototype.js同樣定義了$,下面就以此為例介紹一下如何防止出現此現象。
解決方式一:
在prototype.js庫之後引入jquery.js檔案,這樣就可以$就是jQuery的別稱,當然prototype.js中的就不再有效。
[HTML] 純文字檢視 複製程式碼<script src="prototype.js" type="text/javascript"/> <script src="jquery.js" type="text/javascript"/>
但是prototype.js中的$就不再有效,下面介紹一如何解決此問題。
1.使用jQuery全名:
因為jquery.js庫在prototype.js後面引用的,儘管$在jQuery中有效,但是prototype.js中的$就不起作用了。但是執行jQuery.noConflict()函式之後,jQuery就會將$的控制權讓渡給prototype,於是prototype.js就可以使用$,但是jQuery中就不能再使用$,那麼這個使用可以使用全稱jQuery,例如:
[JavaScript] 純文字檢視 複製程式碼jQuery("#thediv").width();
2.使用自定義別名:
在上面的介紹中,在執行了jQuery.noConflict()函式之後就不能使用$,只能夠使用jQuery,這樣可能不夠靈活,那麼我們可以自定義一個jQuery的別稱,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var newJquery=JQuery.noConflict(); newJquery("#thediv").width();
解決方式二:
在prototype.js庫之前引入jquery.js檔案的情況:
[HTML] 純文字檢視 複製程式碼<script src="jquery.js" type="text/javascript"/> <script src="prototype.js" type="text/javascript"/>
先看下面的程式碼:
[JavaScript] 純文字檢視 複製程式碼$("#thediv").width();
以上程式碼中的$不再代表jQuery,而是prototype.js中宣告的符號。
在這種情況下可以使用全稱jQuery而不是使用別稱$來獲取元素,如下:
[JavaScript] 純文字檢視 複製程式碼jQuery("#thediv").width();
也可以使用匿名函式的方式實現:
[JavaScript] 純文字檢視 複製程式碼(function($){ //程式碼 })(jQuery)
以上程式碼建立並執行一個匿名函式,此函式的引數是jQuery,這樣在保證不和jQuery衝突的前提下,就可以在匿名函式內部繼續使用$了,因為函式建立了一個新的作用域,和外部不相沖突。
相關文章
- css命名衝突解決方法CSS
- js檔案命名衝突理解JS
- jQuery多庫衝突jQuery
- 解決jquery和其他庫的衝突jQuery
- 使用SUI與JQuery衝突的解決方法UIjQuery
- jquery和dwr的util.js方法衝突jQueryJS
- 如何防止jQuery庫不同版本之間的衝突jQuery
- [奇技Y巧]解決程式快取鎖命名困難,命名衝突問題快取
- 如何解決jQuery的美元$符號衝突問題jQuery符號
- jquery如何解決版本之間衝突的問題jQuery
- 如解決jquery與原生js衝突的問題jQueryJS
- 關於jquery.form和jquery.validata衝突的解決方案jQueryORM
- H5-Jquery和Vue同時使用衝突H5jQueryVue
- 談談 jQuery 中的防衝突(noConflict)機制jQuery
- 解決echsop相容jquery(transport.js的衝突)的問題jQueryJS
- svn檔案衝突,樹衝突詳解
- jQuery.noConflict() 方法—— jquery庫與其他庫衝突的問題解決jQuery
- 解衝突用到的命令
- commit 衝突MIT
- 雜湊衝突
- Git 衝突了怎麼辦,如何高效快速的解決程式碼衝突?Git
- POP Animation 和 layoutSubviews 的衝突View
- 如何避免javascript中的衝突JavaScript
- Git 解決衝突Git
- git 解決衝突Git
- 查詢maven衝突Maven
- git pull衝突的解決方案Git
- 埠衝突,可愛的8080
- JAR衝突問題的解決JAR
- PHP中的trait方法衝突PHPAI
- 關於hash衝突的解決
- ScrollView中用ListView的事件衝突View事件
- 衝突處理的方法(轉載)
- JavaScript中解決jQuery和Prototype.js同時引入衝突問題JavaScriptjQueryJS
- 程式衝突及其解決
- Activemq和Rabbitmq埠衝突MQ
- git pull 衝突解決Git
- Java依賴版本衝突Java