不過很快,有很多人給出了解決方案,如比較流行的方案是這樣的:

復制代 " /> 青柠在线观看视频在线高清完整 ,国产精品第十页,videossexo乌克兰

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Jquery與Prototype混合用法對比

但問題來了,由于jQuery以及prototype都使用了美元符函數“$”作為選擇器,在兩者混合使用的時候$函數被重復定義了,結果導致其中一個框架不能使用。

不過很快,有很多人給出了解決方案,如比較流行的方案是這樣的:

復制代碼 代碼如下:
<script src="http://jquery.com/src/latest/"></script>
<script type="text/Javascript">
JQ = $; //rename $ function

</script>
<script src="prototype.js"></script>

<script src="http://jquery.com/src/latest/"></script>
<script type="text/Javascript">
JQ = $; //rename $ function
</script>

<script src="prototype.js"></script>

這樣一來,你可以使用JQ來代替jQuery里的$函數名,而prototype的$函數照常使用,像這樣:
復制代碼 代碼如下:
<script type="text/Javascript">
JQ(document).ready(function(){
JQ("#test_jquery").html("this is jquery");
$("test_prototype").innerHTML="this is prototype";
});
</script>
<script type="text/Javascript">
JQ(document).ready(function(){
JQ("#test_jquery").html("this is jquery");
$("test_prototype").innerHTML="this is prototype";
});
</script>

盡管這種辦法在一定程度上解決了兩者的沖突,但作為jQuery的死忠,我是萬分不情愿改寫$為JQ或其他替代的字符。反之Prototype的粉絲估計也會這樣想。那么,是不是有另一種解決方案,讓兩種框架能和諧共處呢?現在流行和諧嘛!

另類解法:先看一小段代碼,猜一下會有什么效果?


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
應該很簡單吧?效果是彈出一個窗品說“helloworld”。仔細看這一段Script,前后有兩個括號組成,第一個括號里面是一個function對象,第二個括號是一個字符串。可以這樣理解,第一個括號里面定義了一個函數,第二個括號里面給出的參數,兩個加在一起實際上是完成了一次函數調用!
那現在來點真實的:

復制代碼 代碼如下:
<script type="text/Javascript" src="jquery-1.2.6.js">
</script>
<script type="text/Javascript" src="prototype-1.6.0.2.js">
</script>
<div id="test_jquery"></div>
<div id="test_prototype"></div>
<script type="text/Javascript">
<!--
(function($){
$(document).ready(function(){
alert($("#test_jquery").html("this is jqeury"));
});
})(jQuery);
$("test_prototype").innerHTML="this is prototype";
//-->
</script>

<script type="text/Javascript" src="jquery-1.2.6.js"> </script>
<script type="text/Javascript" src="prototype-1.6.0.2.js"> </script>
<div id="test_jquery"></div>
<div id="test_prototype"></div>
<script type="text/Javascript">
<!--
(function($){ $(document).ready(function(){ alert($("#test_jquery").html("this is jqeury")); }); })(jQuery); $("test_prototype").innerHTML="this is prototype"; //--> </script>

經測試,jQuery與Prototpye工作均正常。唯一以往常不一樣的是,我們要在以前寫的Jquery外面加多一個外套:
復制代碼 代碼如下:
(function($){
//這里寫Jquery代碼
})(jQuery);
(function($){
//這里寫Jquery代碼 })(jQuery);

這個外套巧妙地利用函數局部變量的有效范圍保證你可以安心地按原來的方式寫Jquery代碼,這個方案更合適現有Jquery的代碼升級至Jquery + prototypt。

不足之處:

還是不能解決Jquery插件的問題,這個問題是傳統方法也無法解決的,只能夠手動去修改插件腳本里面對$的調用,而根本的解決辦法是以后的插件都用剛才那種另類的方式去寫,才能保證其可用性。而Jquery UI現在好像是這樣做了,我從Demo的源碼里面看到的。

JavaScript技術Jquery與Prototype混合用法對比,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品伊人久久久 | 91国内精品久久久久免费影院 | 中文字幕在线视频在线看 | 国产性夜夜春夜夜爽1A片 | 国产呻吟久久久久久久92 | 国产在线播放精品视频 | 欧美亚洲国产专区在线 | 色欲AV亚洲午夜精品无码 | 日韩一卡二卡三卡四卡免费观在线 | 国产又粗又猛又爽又黄的免费视频 | 国产专区青青草原亚洲 | 国产在线精品亚洲二品区 | 翁公与小莹在客厅激情 | 二次元美女扒开内裤喷水 | 国产成人亚洲精品老王 | 国产精品爽爽久久久久久蜜桃 | 肉动漫无码无删减在线观看 | 成年AV动漫 | 午夜日本大胆裸艺术 | 黄色天堂网 | 伊人天天躁夜夜躁狠狠 | 国产精品成人A蜜柚在线观看 | 中文字幕无码他人妻味 | 亚洲AV永久无码精品老司机蜜桃 | 亚洲免费在线播放 | 女生扒开下面 | 欧美一级成人影院免费的 | 女性露出奶头流出精子 | 亚洲精品资源网在线观看 | 哒哒哒高清视频在线观看 | 国产主播AV福利精品一区 | 闺蜜扒开我尿口使劲揉 | 国产在线精彩视频 | 精品成人在线视频 | 日本无码色哟哟婷婷最新网站 | 亚洲国产精品第一影院在线观看 | 伊人久久综合成人亚洲 | 亚洲午夜久久久久中文字幕 | 国产精品热久久高潮AV袁孑怡 | 做暧暧免费30秒体验 | 国产69精品久久久熟女 |