Jquery不一樣版本共用的解決方案(插件編寫)

最近在爲某公司作企業內部UI庫,通過研究分析和評審,決定基於Jquery開發,結合Bootstrap插件那簡潔,優雅,高效的思想進行插件編寫。 javascript

可是在編寫的過程當中遇到一個頭疼的問題,就是正在編寫的插件是基於Jquery-1.9.1版本開發的,而企業網站使用的是Jquery-1.6.2版本,這就會產生版本兼容性的問題,若是用了高版本的開發,整個網站極可能會癱瘓,可是沿用舊版本的Jquery,就會缺乏不少功能,開發效率相對較低。幸虧Jquery還有多庫共存的方案,那就是Jquery.noconfilct()功能了。看了Jquery的API和查閱了相關資料,都不符合個人實際須要,通過屢次的調試以後,終於成功整合了這兩個版本 java

  1. <script type="text/javascript" src="jquery-1.9.1.js"></script>
  2. <script type="text/javascript" src="customize.js"></script>
  3. <script type="text/javascript">
  4. var _$ = jQuery.noConflict(true);
  5. </script>
  6. <script type="text/javascript" src="jquery-1.6.2.js"></script>
  7. <script type="text/javascript">
  8. //invoke Jquery.1.6.2
  9. $("document").ready(function(){
  10. alert("faf");
  11. })
  12. //invoke Jquery.1.9.1
  13. _$("document").ready(function(){
  14. alert("faf");
  15. })
  16. </script>

這裏只是簡單的整合兩個版本,_$調用的是1.9.1版本的API,而$調用的是1.6.3的API. jquery

一般咱們都會基於某個版本寫插件,好比基於1.9.1的版本寫了個customize.js,這個文件必須放在1.9.1.js引用以後, jQuery.noConflict(true)以前。這裏須要注意,customize.js裏面的插件編寫,仍是必須用"$",這是由於此時尚未調用jQuery.noConflict函數,在調用完該函數後,須要用到自定義的插件或是1.9.1裏的函數庫,就必須用"_$"。如_$("#selector").company_button調用的就是自定義的插件。如調用$("#selector").company_button,就會出現無此函數的錯誤。 函數

相關文章
相關標籤/搜索