整合jQuery和Prototype遇到的问题.
由于项目要在旧的服务器上面运行,而旧的服务器底层用了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遇到的问题.的更多相关文章
- 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...
- 事件代理总结: 已经有一些使用主流类库的事件代理示例出现了,比如说jQuery、Prototype以及Yahoo! UI。你也可以找到那些不用任何类库的例子,比如说Usable Type blog上的这一个。一旦需要的话,事件代理将是你工具箱里的一件得心应手的工具,而且它很容易实现。
如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么 ...
- Struts2 整合jQuery实现Ajax功能(1)
技术领域非常多东西流行,自然有流行的道理.这几天用了jQuery,深感有些人真是聪明绝顶,能将那么多技术融合的如此完美. 首先明白个概念: jQuery是什么:是使用javascript语言开发的,用 ...
- 解决jquery和prototype库冲突问题
在项目中同时引入了jquery.js和prototype.js两个文件,在方法调用时启了冲突. 我们在使用 jQuery 的过程中我们会频繁使用 $ 符号,$是JQuery的别名,所有使用$的地方也都 ...
- 解决Jquery和prototype的兼容问题
1. 引入jquery 时,将jquery库在 prototype之前引入: 2.使用时: jQuery.noConflict(); // 这个要在 之前加上 3.初始化加载 (这里我试过,可以有两 ...
- JavaScript中解决jQuery和Prototype.js同时引入冲突问题
两个库同时都定义了一个叫$的函数,所以在同时使用的时候会发生冲突.jQuery( http://jquery.com/ https://jquery.org/ )中提供了一种返还$的使用权给其他js库 ...
- jQuery 与 prototype 共存
方法一: <html> <head> <script src="prototype.js"></script> ...
- jQuery和Prototype的兼容性和冲突的五种解决方法
第一种情况:先加载Prototype,再加载jQuery方法一:jQuery 库和它的所有插件都是在jQuery名字空间内的,包括全局变量也是保存在jQuery 名字空间内的. 使用jQuery.no ...
- asp.net使用母版页以及Jquery和prototype要注意的问题
在母版页中引用了js,css或者其他外部文件之后,子页面就不必再重新引用,否则可能出错 prototype.js和jquery.js冲突的解决方案: <script type="tex ...
随机推荐
- C++学习39 异常处理入门(try和catch)
编译器能够保证代码的语法是正确的,但是对逻辑错误和运行时错误却无能为力,例如除数为 0.内存分配失败.数组越界等.这些错误如果放任不管,系统就会执行默认的操作,终止程序运行,也就是我们常说的程序崩溃( ...
- JAVA 回调
一.定义 回调就是把函数指针做为参数传入,如函数A做为参数传入函数B,由B函数决定何时.何地调用函数A, function A() function B(A) { ...
- java selenium 项目环境搭建(一)
1.使用jdk1.7版本.jdk下载,请再百度输入 jdk 1.7下载,环境配置参考
- (转).NET代码混淆实践
今天突然对反编译.混淆感兴趣,在网上查了一些资料,文章大部分内容来源http://www.cnblogs.com/hsapphire/archive/2010/11/21/1883514.html. ...
- (转)读取XML数据到treeView中
原文地址,只为收藏:http://www.cnblogs.com/ylwn817/archive/2011/12/15/2288512.html /// <summary> ...
- C# 位域[flags] 转
C# 位域[flags] .NET中的枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天:还有就是用来表示多种复合的状态.这个时候一般需要为枚举加上[Flags]特性标记为位域,例如: ...
- Indian Scientists Design Device to Collect Solar Energy 印度科学家设计太阳能收集设备
Indian scientists have designed a new device they hope will solve one of the biggest problems with ...
- Maven本地资源库
在本地安装的mvn文件夹中找到conf/setting.xml,然后找到localRepository结点,这个路径值就是Maven的实际路径 打开该文件夹就能够看到
- vb 取得桌面路径
txtPath.Text = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
- 操作系统是怎么工作的——函数的堆栈框架/嵌入式代码
1.函数堆栈框架 1.1框架模型 call指令: 1)将eip中的下一条指令的地址A保存在栈顶: 2)设置eip指向被调用程序的代码处. ret指令:将地址A恢复到eip中 这样就将函数的调用变为顺序 ...