`
ol_beta
  • 浏览: 287082 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

解决 jQuery 与 prototype冲突 jQuery与easyvalidation冲突

阅读更多

看以一篇解决方案,我测试没成功http://www.blogjava.net/beansoft/archive/2008/07/03/212407.html

今天问了老师,得到了正解。

 

注意jQuery与prototype的加载顺序。

其实这两个框架冲突主要是$符号的冲突,在jQuery中将$引用的对象映射回原始的对象就可以解决了

 

导入js

<script type="text/javascript" src="js/jquery.js" mce_src="js/jquery.js"></script>
<script type="text/javascript">
	jQuery.noConflict();
</script>
<script type="text/javascript" src="js/functions.js" mce_src="js/functions.js"></script>
<!-- begin easyvalidation -->
	<script src="js/easyvalidation/prototype.js" mce_src="js/easyvalidation/prototype.js" type="text/javascript"></script>
	<script src="js/easyvalidation/effects.js" mce_src="js/easyvalidation/effects.js" type="text/javascript"></script>
	<script src="js/easyvalidation/validation_cn.js" mce_src="js/easyvalidation/validation_cn.js" type="text/javascript"></script>
	<!-- 需要的样式文件 -->
	<link rel="stylesheet" type="text/css" href="css/easyvalidation/style_min.css" mce_href="css/easyvalidation/style_min.css" />	
<!-- end easyvalidation -->
 

编写代码,

下面是一个自动绑定下拉列表的函数,测试在有prototype环境中能过正常运行

function selectBind(selectId,valueStr){
	//解决jQuery与prototype的冲突
	var count = jQuery("#"+selectId+" option").length;
	for(var i=0;i<count;i++){
		if(jQuery("#"+selectId).get(0).options[i].value==valueStr){
			jQuery("#"+selectId).get(0).options[i].selected=true;
			break;
		}
	}
}
 

附录:

jQuery.noConflict()

jQuery.noConflict()

运行这个函数将变量$的控制权让渡给第一个实现它的那个库。

这有助于确保jQuery不会与其他库的$对象发生冲突。

在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("div p")的地方,就必须换成jQuery("div p")。

注意: 这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前 使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。


Run this function to give control of the $ variable back to whichever library first implemented it.

This helps to make sure that jQuery doesn't conflict with the $ object of other libraries.

By using this function, you will only be able to access jQuery using the 'jQuery' variable. For example, where you used to do $("div p"), you now must do jQuery("div p").

NOTE: This function must be called after including the jQuery javascript file, but before including any other conflicting library, and also before actually that other conflicting library gets used, in case jQuery is included last.

返回值

jQuery

示例

将$引用的对象映射回原始的对象。

jQuery 代码:

jQuery.noConflict();
// 使用 jQuery
jQuery("div p").hide();
// 使用其他库的 $()
$("content").style.display = 'none';

恢复使用别名$,然后创建并执行一个函数,在这个函数的作用域中仍然将$作为jQuery的别名来使用。在这个函数中,原来的$对象是无效的。这个函数对于大多数不依赖于其他库的插件都十分有效。

jQuery 代码:

jQuery.noConflict();
(function($) {
$(function() {
// 使用 $ 作为 jQuery 别名的代码
});
})(jQuery);
// 其他用 $ 作为别名的库的代码

创建一个新的别名用以在接下来的库中使用jQuery对象。

jQuery 代码:

var j = jQuery.noConflict();
// 基于 jQuery 的代码
j("div p").hide();
// 基于其他库的 $() 代码
$("content").style.display = 'none';

 

分享到:
评论

相关推荐

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

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

    jquery解决冲突

    jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突

    找到了一篇jQuery与Prototype并存的冲突的解决方法

    "解决jQuery与Prototype并存的冲突" 在Web开发中,使用JavaScript框架可以帮助我们提高开发效率,但是当我们使用多个JavaScript框架时,可能会出现冲突问题。例如,jQuery和Prototype都是非常流行的JavaScript框架...

    jquery + prototype框架

    在同一个项目中同时使用这两个库时,可能需要采取一些策略来避免冲突,例如使用`jQuery.noConflict()`来释放`$`符号,或者在特定范围内使用`jQuery(function($) { ... })`。 总的来说,这两个框架都有其独特的优势...

    ecshop解决与jQuery冲突文件

    新的`transport.js`应该已经解决了与jQuery的冲突问题,采用了更友好的命名空间或者避免了与jQuery相同的方法名。替换后,ECSHOP将能更好地与jQuery库协同工作,避免冲突,同时保持原有的AJAX功能。 在实际操作中,...

    Ajax(Ajax,jquery,prototype综合).rar

    jQuery提供了`.ajax()`、`.get()`、`.post()`等方法,Prototype有`Ajax.Request`和`Ajax.Updater`等,它们都封装了底层的XMLHttpRequest操作,让开发者可以更专注于业务逻辑。 6. **jQuery的Ajax**:jQuery的Ajax...

    ecshop解决jquery冲突js

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

    jQuery prototype冲突的2种解决方法(附demo示例下载)

    本文实例分析了jQuery prototype冲突的2种解决方法。分享给大家供大家参考,具体如下: jquery和prototype怎么会冲突,归根到底就是因为他们二个都用到了$,同时用,混淆了。这个问题解决过不下5次,每次解决都要查...

    javascript框架(json.jQuery.prototype).rar

    jQuery是广泛使用的JavaScript库,它简化了JavaScript的许多方面,尤其是与DOM操作相关的部分。同时,"prototype"在这里可能指的是JavaScript对象原型,这是理解JavaScript面向对象编程的关键概念。 **JSON ...

    ecshop和jquery冲突的解决方法

    在本篇文章中,我们将深入探讨如何有效解决ecshop与jQuery之间的冲突问题,并提供一系列实用的解决方案,帮助开发者更好地处理这两种技术共存时可能遇到的问题。 ### 一、Ecshop简介 Ecshop是一款开源的电子商务...

    javascript手册大全,其中有jquery,prototype手册的

    这个压缩包包含了一系列关于JavaScript及其相关库的手册,如jQuery和Prototype,这些都是JavaScript开发中不可或缺的工具。 首先,我们来看《Jscript.CHM》。JScript是Microsoft对ECMAScript规范的一种实现,虽然...

    CSS Jquery DHTML Prototype 经典电子书

    【标题】"CSS Jquery DHTML Prototype 经典电子书"揭示了Web开发中的三个...它可能涵盖.NET框架的使用、ASP.NET的开发、C#编程等方面,与CSS、JQuery和Prototype结合,能帮助开发者全面理解和掌握Web开发的各个环节。

    jquery bootstrap prototype框架

    Prototype的Class和Function扩展让JavaScript的类和函数更具表现力,但与jQuery相比,Prototype在现代Web开发中的使用相对较少,因为jQuery的流行和更广泛的支持。 在实际开发中,这三个框架往往结合使用,jQuery...

    jquery+prototype 源码 资料 插件合集

    《jQuery与Prototype:源码解析、资料汇集及插件应用》 在Web开发领域,JavaScript库如jQuery和Prototype因其强大的功能和易用性而备受开发者喜爱。本资源合集包含了这两个库的源码、相关资料以及插件,为开发者...

    jQuery.fn和jQuery.prototype区别介绍

    在JavaScript和jQuery的世界里,`jQuery.fn` 和 `jQuery.prototype` 是两个非常关键的概念,它们密切相关,但有着明确的区别。了解这些概念对于深入理解和自定义jQuery插件是至关重要的。 首先,`jQuery.fn` 是 `...

Global site tag (gtag.js) - Google Analytics