最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Jquery与Prototype混合用法对比_prototype

来源:动视网 责编:小采 时间:2020-11-27 20:39:57
文档

Jquery与Prototype混合用法对比_prototype

Jquery与Prototype混合用法对比_prototype:但问题来了,由于jQuery以及prototype都使用了美元符函数$作为选择器,在两者混合使用的时候$函数被重复定义了,结果导致其中一个框架不能使用。 不过很快,有很多人给出了解决方案,如比较流行的方案是这样的: 代码如下: JQ = $; //rena
推荐度:
导读Jquery与Prototype混合用法对比_prototype:但问题来了,由于jQuery以及prototype都使用了美元符函数$作为选择器,在两者混合使用的时候$函数被重复定义了,结果导致其中一个框架不能使用。 不过很快,有很多人给出了解决方案,如比较流行的方案是这样的: 代码如下: JQ = $; //rena


但问题来了,由于jQuery以及prototype都使用了美元符函数“$”作为选择器,在两者混合使用的时候$函数被重复定义了,结果导致其中一个框架不能使用。

不过很快,有很多人给出了解决方案,如比较流行的方案是这样的:

代码如下:


JQ = $; //rename $ function




JQ = $; //rename $ function



这样一来,你可以使用JQ来代替jQuery里的$函数名,而prototype的$函数照常使用,像这样:
代码如下:

JQ(document).ready(function(){
JQ("#test_jquery").html("this is jquery");
$("test_prototype").innerHTML="this is prototype";
});


JQ(document).ready(function(){
JQ("#test_jquery").html("this is jquery");
$("test_prototype").innerHTML="this is prototype";
});


尽管这种办法在一定程度上解决了两者的冲突,但作为jQuery的死忠,我是万分不情愿改写$为JQ或其他替代的字符。反之Prototype的粉丝估计也会这样想。那么,是不是有另一种解决方案,让两种框架能和谐共处呢?现在流行和谐嘛!

另类解法:先看一小段代码,猜一下会有什么效果?


[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
应该很简单吧?效果是弹出一个窗品说“helloworld”。仔细看这一段Script,前后有两个括号组成,第一个括号里面是一个function对象,第二个括号是一个字符串。可以这样理解,第一个括号里面定义了一个函数,第二个括号里面给出的参数,两个加在一起实际上是完成了一次函数调用!
那现在来点真实的:

代码如下:







(function($){
$(document).ready(function(){
alert($("#test_jquery").html("this is jqeury"));
});
})(jQuery);
$("test_prototype").innerHTML="this is prototype";
//-->






(function($){ $(document).ready(function(){ alert($("#test_jquery").html("this is jqeury")); }); })(jQuery); $("test_prototype").innerHTML="this is prototype"; //-->

经测试,jQuery与Prototpye工作均正常。唯一以往常不一样的是,我们要在以前写的Jquery外面加多一个外套:
代码如下:
(function($){
//这里写Jquery代码
})(jQuery);
(function($){
//这里写Jquery代码 })(jQuery);

这个外套巧妙地利用函数局部变量的有效范围保证你可以安心地按原来的方式写Jquery代码,这个方案更合适现有Jquery的代码升级至Jquery + prototypt。

不足之处:

还是不能解决Jquery插件的问题,这个问题是传统方法也无法解决的,只能够手动去修改插件脚本里面对$的调用,而根本的解决办法是以后的插件都用刚才那种另类的方式去写,才能保证其可用性。而Jquery UI现在好像是这样做了,我从Demo的源码里面看到的。

文档

Jquery与Prototype混合用法对比_prototype

Jquery与Prototype混合用法对比_prototype:但问题来了,由于jQuery以及prototype都使用了美元符函数$作为选择器,在两者混合使用的时候$函数被重复定义了,结果导致其中一个框架不能使用。 不过很快,有很多人给出了解决方案,如比较流行的方案是这样的: 代码如下: JQ = $; //rena
推荐度:
标签: 对比 jQuery prototype
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top