`
啸笑天
  • 浏览: 3465800 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

解决jquery和其他库的冲突

阅读更多

在jQuery库中,几乎所有的插件都被限制在他的命名空间里。通常,全局(global)对象都被很好地存储在jQuery命名空间里,因此当把jQuery和其他JavaScript库一起使用时,不会引起冲突。

jQuery库在其他库之后导入

方法1

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决1</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>

<script type="text/javascript">
jQuery.noConflict();				//将变量$的控制权让渡给prototype.js
jQuery(function(){					//使用jQuery
	jQuery("p").click(function(){
		alert( jQuery(this).text() );
	});
});

$("pp").style.display = 'none';		//使用prototype
</script>

</body>
</html>

 

方法2

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决2</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>

<script type="text/javascript">
var $j = jQuery.noConflict();		//自定义一个比较短快捷方式
$j(function(){						//使用jQuery
	$j("p").click(function(){
		alert( $j(this).text() );
	});
});

$("pp").style.display = 'none';		//使用prototype
</script>
</body>
</html>
 

 

方法3

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决3</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>

<script type="text/javascript">
jQuery.noConflict();				//将变量$的控制权让渡给prototype.js
jQuery(function($){					//使用jQuery
	$("p").click(function(){		//继续使用 $ 方法
		alert( $(this).text() );
	});
});

$("pp").style.display = 'none';		//使用prototype
</script>

</body>
</html>
 

 

方法4(插件一般以这种形式写)

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决4</title>
<!-- 引入 prototype  -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
<!-- 引入 jQuery  -->
<script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>

<script type="text/javascript">
jQuery.noConflict();				//将变量$的控制权让渡给prototype.js
(function($){						//定义匿名函数并设置形参为$
	$(function(){					//匿名函数内部的$均为jQuery
		$("p").click(function(){	//继续使用 $ 方法
			alert($(this).text());
		});
	});
})(jQuery);							//执行匿名函数且传递实参jQuery

$("pp").style.display = 'none';		//使用prototype
</script>

</body>
</html>
 

 

jQuery库在其他库之前导入

 

方法5

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>冲突解决5</title>
<!--先导入jQuery -->
<script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script>
<!--后导入其他库 -->
<script src="prototype-1.6.0.3.js" type="text/javascript"></script>
</head>
<body>
<p id="pp">test---prototype</p>
<p >test---jQuery</p>

<script type="text/javascript">
jQuery(function(){   //直接使用 jQuery ,没有必要调用"jQuery.noConflict()"函数。
	jQuery("p").click(function(){      
		alert( jQuery(this).text() );
	});
});

$("pp").style.display = 'none'; //使用prototype
</script>
</body>
</html>
 

 

 

1
0
分享到:
评论

相关推荐

    JQuery与其他库的冲突

    解决了Jquery和其他库之间的冲突 第一种方式就是直接使用JQuery,第二种方法是通过返回值来,第三种方式把$号传入,第四种方式通过匿名方式将jquery传入

    解决其他js和jquery冲突方法

    解决其他js和jquery冲突方法 JS和jQuery是两个非常常用的JavaScript库,但是当它们一起使用时,可能会出现冲突。解决这种冲突的方法是使用noConflict()方法将变量$的控制权让渡给其他库。 在开发过程中,可能还会...

    ecshop解决jquery冲突js

    标题中的"ecshop解决jquery冲突js"就直指这个问题,即如何在ECShop环境中解决JQuery与其他JS库的冲突。 JQuery冲突通常源于$符号的全局使用,这是JQuery的核心选择器和函数调用。为了解决这个问题,JQuery提供了`...

    解决jquery与dwr冲突(java/jsp)

    ### 解决jQuery与DWR冲突的方法 在Web开发过程中,经常需要使用多种JavaScript库来实现丰富的前端交互效果。其中,jQuery因其简洁易用的特点而被广泛采用,而DWR(Direct Web Remoting)则是一种简化Java与...

    ecshop和jquery冲突的解决方法

    为了有效地解决Ecshop和jQuery之间的冲突,我们可以采取以下几种策略: 1. **修改jQuery文档加载方式**: - 将jQuery的加载方式改为No Conflict模式,即在引入jQuery时使用`&lt;script src="path/jquery.js"&gt;...

    jQuery与其他JS库或jQuery文件冲突解决方法

    本人亲测,本人网页有两个JS效果,用到了两个jQuery文件(一个是jquery.min.js,另一个是jquery.pack.js),可以两个冲突,只能保留一个。 但效果就只能有一个。我想两个都保留,于是就想了很多办法,查了很多资料,...

    关于jQuery库冲突的完美解决办法

    总的来说,解决jQuery和其他库冲突的关键在于使用`jQuery.noConflict()`来释放或保留`$`的使用权,并根据需要创建新的别名。通过这些方法,开发者可以在一个页面上安全地使用多个JavaScript库,而不必担心命名冲突。

    jquery与js函数冲突的两种解决方法.docx

    在实际应用中,开发者可以根据项目的具体需求选择合适的方法来避免或解决jQuery和其他JavaScript库的冲突,确保代码的正常运行和项目的顺利进行。同时,了解这些解决冲突的策略也是提升JavaScript开发技能的重要一环...

    ecshop解决与jQuery冲突文件

    然而,当ECSHOP与jQuery库结合使用时,可能会出现一些兼容性或冲突问题。本文将深入探讨这些问题,以及如何通过替换`transport.js`文件并引入`json2.js`来解决这些问题。 首先,让我们了解`transport.js`文件在...

    jquery和dwr.utls冲突解决

    通过上述方法之一或结合使用,可以有效地解决jQuery和DWR.utls之间的冲突,确保两者的正常工作。在实际开发中,理解这些技术并灵活应用,可以帮助我们构建更稳定、更可靠的Web应用程序。在遇到类似问题时,应该首先...

    快速解决jQuery与其他库冲突的方法介绍

    通常,当在同一个页面上使用jQuery和其他库时,全局名称$的定义是最大的争论和冲突的焦点。众所周知,jQuery使用$作为jQuery名称的别名,并将其用于jQuery公开的每一个功能,但是其他库,最著名的就是Prototype,也...

    如何解决jQuery 和其他JS库的冲突

    当我们需要在同一个网页项目中使用jQuery和其他JavaScript库时,经常会出现JavaScript库之间的冲突问题。...以上就是如何解决jQuery与其他JavaScript库冲突的方法,在实际开发中可以根据具体情况选择合适的解决方案。

    解决ECSHOP和jquery冲突问题所需文件

    1. **加载顺序**:确保jQuery库在ECSHOP的任何自定义JavaScript代码之前加载。这样,当ECSHOP的代码执行时,jQuery已经创建了自己的命名空间,减少了冲突的可能性。 2. **使用`noConflict()`**:如果ECSHOP的代码...

    ckeditor 和 ckfinder集成,并解决ckeditor和jquery dialog冲突问题

    这篇博客文章“ckeditor 和 ckfinder集成,并解决ckeditor和jquery dialog冲突问题”主要探讨了如何将这两个组件整合在一起,以及如何处理可能出现的前端JavaScript库冲突。 首先,集成CKEditor和CKFinder的目的是...

    json.js 与jquery冲突解决

    1. **使用jQuery的`noConflict`方法**:`$.noConflict()`可以释放`$`变量,避免与其他库冲突。你可以通过`jQuery`代替`$`来继续使用jQuery的功能。 ```javascript var jq = $.noConflict(); // 使用jQuery时,写...

    jQuery与其它库冲突的解决方法

    总结而言,在处理jQuery与其它JavaScript库冲突的问题时,首先应该考虑使用jQuery.noConflict()来释放$变量的控制权,并通过自定义快捷方式来保持代码的简洁性。同时,利用IIFE是一种在维护旧代码时减少冲突和工作量...

    处理jquery版本之间冲突

    如果传入参数`true`,那么除了将`$`从jQuery的控制下移除外,还会把`jQuery`也从jQuery的控制下移除,从而允许其他库或框架使用`jQuery`变量名。 #### 示例代码详解 以下是一个具体的示例,展示如何使用`...

    jQuery多个版本和其他js库冲突的解决方法

    2. 同一页面上jQuery与其他js库冲突的解决: 当其他库(如Prototype)也使用`$`时,你可以使用`noConflict()`方法释放`$`,让其他库接管它。例如: ```html &lt;script src="jquery.js"&gt; ...

Global site tag (gtag.js) - Google Analytics