jRaiser与jQuery的冲突问题

作者:heero 来源:heero博客 时间:2010-07-27 12:36:00 

最近有网友在留言板里问到jRaiser和jQuery的冲突问题,特此写一篇文章进行解释。

冲突的根源

众所周知,jQuery是通过一个全局变量$来引用的,而jRaiser加载时也占用了$。因而冲突的根源就是全局变量$。说得明白点:当jQuery和jRaiser共存的时候,$究竟是谁

分析jQuery和jRaiser的源代码可以知道,这两个库在加载的时候都会占用$变量。因此,按照覆盖的原理,谁后加载,$变量就是谁

如何解决冲突

别名法

除了$,jQuery和jRaiser都占用了另外一个变量作为别名,这个别名就是库本身的名称。

jQuery("div"); // 使用jQuery
jRaiser("div"); // 使用jRaiser

使用别名的主要问题是输入不方便:“$”只有一个字符,而“jQuery”有六个字符。但这个问题可以通过闭包解决:

(function($) {
// 此函数内的$是jQuery
$("div");
})(jQuery);

(function($) {
// 此函数内的$是jRaiser
$("div");
})(jRaiser);

使用多库共存机制

jQuery提供了jQuery.noConflict()这样一个方法,可以把$变量恢复为jQuery加载前的值。

<script type="text/javascript" src="jRaiser-1.3.3.js"></script>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">//<![CDATA[
jQuery.noConflict();
alert($ === jRaiser); // true
//]]></script>

jRaiser也提供了类似的方法。jRaiser.retire()可以把$变量恢复为jRaiser加载前的值;而jRaiser.resume()则恢复jRaiser对$变量的占用。

<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="jRaiser-1.3.3.js"></script>
<script type="text/javascript">//<![CDATA[
jRaiser.retire();
alert($ === jQuery); // true
jRaiser.resume();
alert($ === jRaiser); // true
//]]></script>

标签:jQuery,jRaiser,冲突
0
投稿

猜你喜欢

  • 另类读写:ACCESS中Field对象的标题属性

    2008-11-28 16:47:00
  • XML轻松学习手册(3)XML的术语

    2008-09-05 17:17:00
  • 全面理解javascript的caller,callee,call,apply概念

    2007-12-02 17:44:00
  • 细化解析:轻松掌握怎样测试 MySQL安装

    2009-01-14 11:54:00
  • 扩展数据库系统选项实现更高的可扩展性

    2009-01-06 11:14:00
  • asp如何将统计的访问者数目周期性地保存?

    2009-11-26 20:54:00
  • 网站重构到底是什么

    2008-11-03 11:30:00
  • 利用box-sizing实现div仿框架

    2009-12-08 15:45:00
  • js实现一个日期联动下拉菜单

    2007-08-04 20:49:00
  • 对xml操作的主要方法例子

    2008-06-29 14:21:00
  • 玩转MySQL中的外键约束之PHP篇

    2010-03-18 10:20:00
  • 八个有用的WordPress的SQL语句

    2009-01-12 18:54:00
  • asp入门之字符串函数介绍示例

    2008-11-04 20:18:00
  • [原创][分享]数字格式化转换

    2011-07-04 12:20:15
  • asp显示左边的n个字符自动识别汉字的函数

    2007-09-13 12:16:00
  • 原来CSS也可以把IE6弄死

    2007-08-14 09:30:00
  • 对跨多个表格的数据组合时需要用到的SQL

    2009-01-06 11:18:00
  • Javascript操作cookie的类

    2007-08-23 09:36:00
  • ASP 千万级数据分页的存储过程

    2011-04-14 11:08:00
  • 浅谈LogMiner的使用方法

    2009-02-28 11:12:00
  • asp之家 网络编程 m.aspxhome.com