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

復(fù)制代 " /> 色欲午夜无码久久久久久,亚洲成人黄色在线,国产精品999

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

Jquery與Prototype混合用法對(duì)比

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

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

復(fù)制代碼 代碼如下:
<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里的$函數(shù)名,而prototype的$函數(shù)照常使用,像這樣:
復(fù)制代碼 代碼如下:
<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的粉絲估計(jì)也會(huì)這樣想。那么,是不是有另一種解決方案,讓兩種框架能和諧共處呢?現(xiàn)在流行和諧嘛!

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


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

復(fù)制代碼 代碼如下:
<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>

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

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

不足之處:

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

JavaScript技術(shù)Jquery與Prototype混合用法對(duì)比,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 夜色私人影院永久入口 | 国产精品人成视频免费999 | 国产欧美一区二区三区在线看 | 红豆视频免费资源观看 | 人成片在线观看亚洲无遮拦 | 国产盗摄一区二区 | 精品美女国产互换人妻 | 亚洲高清视频一区 | 国产女人91精品嗷嗷嗷嗷 | 亚洲国产中文字幕在线视频 | qvod电影网| 九九大香尹人视频免费 | 秀婷程仪公欲息肉婷在线观看 | 精品亚洲国产熟女福利自在线 | 阴茎插入阴道 | 东莞桑拿美女 | 芳草地社区在线视频 | 成人小视频在线免费观看 | 最新无码国产在线视频2020 | 欧美三级黄色大片 | AV一区AV久久AV无码 | 99久久免费国产精精品 | 国产激情一级毛片久久久 | 国产极品美女视频福利 | 99re久久热在线播放快 | 真人女人无遮挡内谢免费视频% | yy8090韩国理伦片在线 | 在线涩涩免费观看国产精品 | 伊人亚洲综合网色 | 大陆女人内谢69XXXORG | 媚药调教被撑到合不拢h | 一本到2019线观看 | FREE乌克兰嫩交HD | 99re6热这里在线精品视频 | 大地影院日本韩国电影免费观看 | 麻1豆传媒2021精品 | 欧美高清视频www夜色资源网 | 精品国产乱码久久久久乱码 | 亚洲欧洲精品A片久久99 | 狠狠撩色姣姣综合久久 | 无码天堂亚洲内射精品课堂 |