由于项目要在旧的服务器上面运行,而旧的服务器底层用了Prototype,所以需要解决jQuery和Prototype冲突的问题。

一.$符号冲突问题

这个还是很好解决的。

jQuery.noConflict()

而如果不想将原来所有$符号换成jQuery,可以用即时函数包住原来的jQuery代码:

(function($){

})(jQuery);

jQuery(document).ready(function($){

});

jQuery(function($){

});

二. for in 数组循环问题

for in 语句本身并不是一个 "bad practice",但是却容易被误用,比如用在数组上。

使用for in语句首先要注意,如果不能百分百确定,那么请使用hasOwnProperty:

for (var prop in obj) {

   if (obj.hasOwnProperty(prop)) {

       // prop is not inherited

   }

}

其次,不要用for in对数组或类数组对象(array-like)。由于Prototype会自动为所有数组添加一推属性,即使用上面hasOwnProperty的方式也无法过滤。不过可以用下面这种方式:

for (var prop in obj) {

    if (Object.prototype.hasOwnProperty.call(obj, prop)) {

    // prop is not inherited

    }

}

三. IE弹框问题 “Stop running this script”

这是一个很奇怪的问题。原来的框架在IE没有问题,但是导入Prototype之后,IE弹框

Stop running this script?

A script on this page is causing your web browser to run slowly. If it continues to run, your computer might become unresponsive.

对于这个问题完全摸不着头脑,通过删除引入文件终于找到罪魁祸首,一个两万多行的文件。一开始还以为里面某个语句导致了这个问题,但是发现并不是。将文件分成两个文件后,就没有出现这个弹框了。

整合jQuery和Prototype遇到的问题.的更多相关文章

  1. 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比

    本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...

  2. 事件代理总结: 已经有一些使用主流类库的事件代理示例出现了,比如说jQuery、Prototype以及Yahoo! UI。你也可以找到那些不用任何类库的例子,比如说Usable Type blog上的这一个。一旦需要的话,事件代理将是你工具箱里的一件得心应手的工具,而且它很容易实现。

    如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么 ...

  3. Struts2 整合jQuery实现Ajax功能(1)

    技术领域非常多东西流行,自然有流行的道理.这几天用了jQuery,深感有些人真是聪明绝顶,能将那么多技术融合的如此完美. 首先明白个概念: jQuery是什么:是使用javascript语言开发的,用 ...

  4. 解决jquery和prototype库冲突问题

    在项目中同时引入了jquery.js和prototype.js两个文件,在方法调用时启了冲突. 我们在使用 jQuery 的过程中我们会频繁使用 $ 符号,$是JQuery的别名,所有使用$的地方也都 ...

  5. 解决Jquery和prototype的兼容问题

    1. 引入jquery 时,将jquery库在 prototype之前引入: 2.使用时: jQuery.noConflict();  // 这个要在 之前加上 3.初始化加载 (这里我试过,可以有两 ...

  6. JavaScript中解决jQuery和Prototype.js同时引入冲突问题

    两个库同时都定义了一个叫$的函数,所以在同时使用的时候会发生冲突.jQuery( http://jquery.com/ https://jquery.org/ )中提供了一种返还$的使用权给其他js库 ...

  7. jQuery 与 prototype 共存

    方法一: <html>   <head>     <script src="prototype.js"></script>     ...

  8. jQuery和Prototype的兼容性和冲突的五种解决方法

    第一种情况:先加载Prototype,再加载jQuery方法一:jQuery 库和它的所有插件都是在jQuery名字空间内的,包括全局变量也是保存在jQuery 名字空间内的. 使用jQuery.no ...

  9. asp.net使用母版页以及Jquery和prototype要注意的问题

    在母版页中引用了js,css或者其他外部文件之后,子页面就不必再重新引用,否则可能出错 prototype.js和jquery.js冲突的解决方案: <script type="tex ...

随机推荐

  1. Replace JSON.NET with Jil JSON serializer in ASP.NET Web API

    I have recently come across a comparison of fast JSON serializers in .NET, which shows that Jil JSON ...

  2. SQL锁表解决并发性

    在数据库开发过程中,不得不考虑并发性的问题,因为很有可能当别人正在更新表中记录时,你又从该表中读数据,那你读出来的数据有可能就不是你希望得到的数据.可以说有些数据同时只能有一个事物去更新,否则最终显示 ...

  3. [DataTable] datatable根据表中的字段进行排序

    private DataTable SortTable(DataTable dt,string[] pids) { DataTable dt0 = dt.Clone(); //复制原表结构 ;i< ...

  4. Xpath定位大全

    selenium使用Xpath定位之完整篇   其中有一片文章提到了xpath元素定位,但是该文章中有些并不能适应一些特殊与个性化的场景.在文本中提供xpath元素的定位终极篇,你一定能在这里找到你需 ...

  5. ubuntu实用技巧

    添加alias ~/.bash_alias文件: alias go="python /Users/xhat/Downloads/goagent/local/proxy.py" ~/ ...

  6. 日志挖掘Logmnr

    日志挖掘 9.1 日志中数据用途 所有对用户数据以及数据字典的改变全部被保存在联机日志中.当然nologging,insert/*+append+/情况比较特殊除外,因此归档日志可以用来做数据库的恢复 ...

  7. MySQL的循环语句使用总结

    REPEAT-UNTIL循环 [loopname]:REPEAT commands; UNTIL condition END REPEAT [loopname]; 在这种循环里,关键字repeat和u ...

  8. NEERC 2013, Eastern subregional contest

    I. The old Padawan Time limit: 0.5 secondMemory limit: 64 MB Yoda: Use the Force. Yes. Now, the ston ...

  9. oracle登陆的命令是什么?导出数据表的命令是什么?

    登陆的命令: su - oracle sqlplus / as sysdba 导出数据表的命令: exp user/pwd@SID file=path/sth.dmp tables=(table1,t ...

  10. 百度地图API 学习网站

    官方示例:http://developer.baidu.com/map/jsdemo.htm#a1_2 (注意:此网页可能由于浏览器问题,源代码编辑器中的代码不能看到.火狐亲测有效) http://d ...