當前位置:編程學習大全網 - 源碼下載 - ios 自己封裝的sdk引入了第三方庫,怎麽防止與外界的沖突

ios 自己封裝的sdk引入了第三方庫,怎麽防止與外界的沖突

jQuery是目前使用最廣泛的前端框架之壹,有大量的第三方庫和插件基於它開發。為了避免全局命名空間汙染,jQuery提供了jQuery/ajax/libs/jquery/1/ajax/libs/jquery/1/ajax/libs/jquery/1/ajax/libs/jquery/1.6.4/jquery.min.js"> <!-- jQuery and $ now point to jQuery 1.6.4 --> <script>var jquery164 = jQuery.noConflict( true );</script> <!-- jQuery now points to jQuery 1.7.0; $ now points to jQuery 1.10.2; jquery164 points to jQuery 1.6.4 --> 避免第三方庫的沖突 以上的代碼片段展示了如何解決多版本jQuery的沖突。接下來,我們嘗試解決jQuery庫和第三方庫的沖突,下面出現的代碼片段在jQuery的官方文檔中都有,有興趣的程序猿可以仔細閱讀官方文檔體會其中的區別。 直接使用No-Conflict模式 使用No-Conflict模式,其實就是對jQuery進行重命名,再調用。 <!-- 采用no-conflict模式,jquery.js在prototype.js之後被引入. --> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> var $j = jQuery.noConflict(); // $j 引用了jQuery對象本身. $j(document).ready(function() { $j( "div" ).hide(); }); // $ 被重新指向prototype.js裏定義的對象 // document.getElementById(). mainDiv below is a DOM element, not a jQuery object. window.onload = function() { var mainDiv = $( "main" ); } </script> 使用自執行函數封裝 使用這種方式,妳可以在匿名函數內部繼續使用標準的$對象,這也是眾多jQuery插件采用的方法。需要註意的是,使用這種方法,函數內部無法再使用prototype.js定義的$對象了。 <!-- jquery.js在prototype.js之後被引入. --> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict(); (function( $ ) { // Your jQuery code here, using the $ })( jQuery ); </script> 使用標準jQuery(document).ready()函數 如果jQuery庫在其它庫之前引入,那麽jQuery內部定義的jQuery和$會被第三方庫覆蓋,這時候再使用noConflict()已經沒有什麽意義了。解決的方法很簡單,直接使用jQuery的標準調用方式。 <!-- jquery.js在prototype.js之前被引入. --> <script src="jquery.js"></script> <script src="prototype.js"></script> <script> // Use full jQuery function name to reference jQuery. jQuery( document ).ready(function() { jQuery( "div" ).hide(); }); // 或者 jQuery(function($){ // Your jQuery code here, using the $ }); // Use the $ variable as defined in prototype.js window.onload = function() { var mainDiv = $( "main" ); }; </script> 下面給大家介紹jQuery noConflict() 方法 noConflict() 方法會釋放會 $ 標識符的控制,這樣其他腳本就可以使用它了。 實例 當然,您仍然可以通過全名替代簡寫的方式來使用 jQuery: $.noConflict(); jQuery(document).ready(function(){ jQuery("button").click(function(){ jQuery("p").text("jQuery 仍在運行!"); }); }); 實例 您也可以創建自己的簡寫。noConflict() 可返回對 jQuery 的引用,您可以把它存入變量,以供稍後使用。請看這個例子: var jq = $.noConflict(); jq(document).ready(function(){ jq("button").click(function(){ jq("p").text("jQuery 仍在運行!"); }); }); 實例 如果妳的 jQuery 代碼塊使用 $ 簡寫,並且您不願意改變這個快捷方式,那麽您可以把 $ 符號作為變量傳遞給 ready 方法。這樣就可以在函數內使用 $ 符號了 - 而在函數外,依舊不得不使用 "jQuery": $.noConflict(); jQuery(document).ready(function($){ $("button").click(function(){ $("p").text("jQuery 仍在運行!"); }); });

  • 上一篇:新本格推理小說中有哪些作家,哪些作品值得壹讀
  • 下一篇:我想用Evkworld環境調用引擎做壹個消除快感的小遊戲。遊戲裏怎麽拖箱子?
  • copyright 2024編程學習大全網