JQuery版本冲突问题

jquery解决冲突 jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突jquery解决冲突 立即下载

从网络中学到的:

摘录自ITeye,学习一下,其中“解决jQuery1.3.2和1.4.2的冲突”方法对本人帮助较大!

我们公司用的是jQuery1.4.2,还有jQuery1.3.2,还有可能要用1.2或者1.1的。至于要用这么多版本完全是因为插件是基于某个版本开发的。如果统一用一个版本的框架,会导致插件运行不正确。此外还用了prototype1.6.2,用prototype是因为click框架自带的。这样冲突就十分严重了,首先$就有prototype和jQuery的冲突,而且还有高端冲突即jQuery各版本之间对于jQuery引用的冲突。
(1)首先解决$的冲突,由于项目的click框架是用了jQuery1.3.2和prototype,并且可能要随Apache更新(意味着改了也是白改),而且改动jQuery1.3.2量大,因为很多插件是基于jQuery1.3.2的,并且有可能基于jQuery1.3.2的插件代码是用Java生成的(这无法改,因为源代码是jar包的)。因此考虑去掉prototype的$引用,改动量少
。(测试不通过)


第一步:找到prototype.js源代码,将function
$(element) {。。。},修改成function $p6(element) {。。。}这将废弃原来的$命名空间,将其换成$p6。同时在后面加上两句var _temp$ = window.$;window.$=$p6;。这两句是为了保证prototype.js的里面引用了$的源代码能够正常使用,同时将别的框架的$引用暂存到临时变量空间中去。把这一句window.$ = _temp$;(返还$的控制权限给jQuery)放在文件的末尾会报错,不知道为什么,估计是prototype.js程序运行到最后,这个程序并没有结束,还要回到前面的代码去执行,而前面的代码还要用$,如果返还给jQuery了,当然就报错了。本人没用过prototype,只能这样猜测。


第二步:在基于prototype.js框架的
所有插件的
头部加上以下代码
var _temp$ = window.$;//将jQuery1.3.2的$放到临时的变量空间上
window.$=$p6;//将prototype新的命名空间$j6赋予给$,这样做的目的是保持中间的原始代码对于$的引用不用改动,也就是不用改动中间原始的插件代码,同时又不会引用到jQuery1.3.2的$。

【中间的原始代码不动】

尾部加以下代码
window.$ = _temp$;//将$的引用权限返还给jQuery1.3.

 

第三步:以后要用基于prototype的选取函数就只能用$p6(element)了。

 但是按照以上这种方式将prototype放弃$的做法,不知道为什么不可以。网上百度的资料也全是jQuery放弃$的控制权,不知道为什么?期待牛人解答。但是以下的(2)是本人测试过行的通的。至于jQuery放弃$控制权网上文章一大堆。大概就是两种情况(一)jQuery.js放在prototype.js前面,这个时候jQuery只能用jQuery来进行引用,prototype写的代码无需任何改动。(二)jQuery.js放在prototype.js后面,由于jQuery在后,默认它的$命名会覆盖掉prototype定义的$,因此需要多这么一句jQuery.noConflict();。它的意思就是释放它定义的$命名,并还原以前的$定义即prototype定义的$。

 

 

(2)再来解决jQuery1.3.2和1.4.2的冲突。(测试通过)


第一步:在1.4.2的源代码的
最后加上一句 var $j4 = jQuery.noConflict(true);//之所以在源码这里加,而不是像大多数文章提的在要用到的时候加,这是因为很多基于1.4.2的插件都要加,在这里加可以避免过多插件加这句代码导致重复。这一句是将1.4.2的jQuery和$的引用权限全部放弃。也就是基于1.4.2的插件不能再用jQuery和$了。同时给予$j4的新的命名空间,注意它是window的属性。看1.4.2的源代码会发现它其实也就执行了这两句:window.$=_$;window.jQuery=_jQuery,道理同window.$=_temp$(返还命名空间)只是命名不同而已。


第二步:在基于1.4.2的框架的
所有插件的


头部加上以下代码
var _temp$ = window.$,_tempjQuery = window.jQuery;/将jQuery1.3.2的$和jQuery放到临时的变量空间上
   
window.$ = $j4;//这句和下面的那句都是为了给中间的代码能够正确使用jQuery和$用的。后面的$j4是赋予他们正确的引用。
   
window.jQuery = $j4;
之所以要先放临时变量存储,有三点必须这样做的理由:

a:我们不希望改动大量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。而在头部尾部加改动代码,中间的原始代码不动也是不错的一种方式。

b:因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码又用了他们来做引用,因为插件不可能预知冲突,即使有冲突他人开发的插件也一定要用$或者jQuery引用,除非它不是jQuery下的插件。

c:为了防止插件里面直接用window.$和window.jQuery进行引用从而导致引用到1.3.2的jQuery和$,虽然这种情况比较少,但是以防万一。

【中间的原始代码不动】

尾部加以下代码
window.$ = _temp$;//将$的引用权限返还给jQuery1.3.
window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.

 

第三步:以后要用基于jQuery1.4.2的选取函数就只能用$j4(element)了。


总结:到目前为止可行方案:jQuery1.4.2完全放弃$和jQuery的控制权限。1.3.2放弃$的控制权限但不放弃j
Query的权限,其实jQuery也可放弃,只不过要给个别名$j3。prototype最好放在jQuery1.3.2后面,它获得$的控制权限。只是以后
要用jQuery1.4.2就必须用$j4来引用了。但这样即使有再多的jQuery框架版本冲突问题,也全部解决掉了。假如来了个1.2的jQuery怎么办,参照(2)的执行步骤,只不过第一步改为
var $j2 = jQuery.noConflict(true);第三步用$j2(element)罢了。道理都是相同的。

 

没有解决的问题:如果prototype的版本之间有$冲突怎么办呢?本人没学过prototype,不清楚它的解决方案。本来我以为按照jQuery解决冲突的方案是完全可以的,但是测试结果发现不行。坐等高人降临。

 


jQuery与其他JS库或jQuery文件冲突解决方法 本人亲测,本人网页有两个JS效果,用到了两个jQuery文件(一个是jquery.min.js,另一个是jquery.pack.js),可以两个冲突,只能保留一个。 但效果就只能有一个。我想两个都保留,于是就想了很多办法,查了很多资料,现分享给大家。2分不多,评论就能得1分,另1分,我纯手打这么多字,给我1分吧。谢谢! 立即下载

相关推荐

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

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

终极解决jQuery与$冲突

我们公司用的是jQuery1.4.2,还有jQuery1.3.2,还有可能要用1.2或者1.1的。至于要用这么多版本完全是因为插件是基于某个版本开发的。如果统一用一个版本的框架,会导致插件运行不正确。此外还用了prototype1.6.2,用prototype是因为click框架自带的。这样冲突就十分严重了,首先$就有prototype和jQuery的冲突,而且还有高端冲突即jQuery各版本之...

myeclipse_bj的博客 257

RAGFlow API 实战指南:从数据集管理到智能对话

本文提供了RAGFlow API的实战指南,详细介绍了如何从零开始构建基于检索增强生成(RAG)的智能应用。内容涵盖环境准备、API密钥获取、核心概念理解,以及通过API进行数据集创建与管理、文档上传解析、知识块管理、检索测试,最终创建并配置智能聊天助手,实现基于私有知识库的精准对话。

weixin_29284885的博客 379

解决jquery冲突

1、jQuery多个版本共存之间的冲突: 由于导航浮动使用了jquery-1.7.2.min.js,而弹出浮动窗口使用了jquery.min.js(jquery.floatDiv.js插件使用),例用如下方法解决—— 第一步:在 jquery.min.js 的源代码的最后加上一句var $j4 = jQuery.noConflict(true);//之所以在源码这里加,而不是像

989

Creo报错代码-9?手把手教你重新生成许可证文件(基于Creo 10.0)

本文详细解析Creo报错代码-9的成因及解决方案,重点介绍如何重新生成许可证文件以应对网络环境变化导致的验证失败。通过分步指南和高级技巧,帮助用户有效管理多网络环境下的Creo许可证问题,提升工作效率。

weixin_30839881的博客 560

Windows本地部署Qwen3-14B实战指南:Ollama+Open WebUI零Docker方案

大语言模型本地部署是AI工程化落地的关键环节,其核心在于推理框架兼容性、硬件加速适配性与端到端稳定性。Ollama作为轻量级模型运行时,原生支持Windows DirectML与CUDA,规避了Docker/WSL2虚拟化开销和llama.cpp编译风险;Qwen3-14B则凭借128K上下文、Tool Calling原生支持及中文长文本结构化能力,成为政务、金融等场景首选。本文聚焦Windows平台真实约束——显存阈值、驱动版本匹配、路径编码兼容、离线知识库集成(RAG)等工程细节,提供经63台Windo

weixin_32136203的博客 413

解决jquery中$命名冲突的几种方法

在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法。然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件jquery.js和prototype.js为例来进行说明。  第一种情况:jquery.js在prototype.js之

zjl207的专栏 1122

分享一下如何使用labelimg制作自己的YOLO数据集

首先准备一下自己的下准备一个空文件夹用于保存标签文件,如下图所示。

skywalkerxhx的博客 831

根据唯一id生成分享码

标题根据唯一id生成分享码 #include <math.h> #include <string> using namespace std; const string share_code_62 = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"; string create_share_...

dancer_0405的博客 5795

用Logisim搞定华科计组实验:单总线CPU设计从微程序到硬布线的保姆级通关攻略

本文详细介绍了如何使用Logisim完成华中科技大学计算机组成原理实验中的单总线CPU设计,涵盖从微程序控制器到硬布线控制器的完整实现过程。通过MIPS指令译码器设计、微程序控制原理、状态机实现等关键步骤的保姆级教程,帮助学生掌握CPU设计的核心技能,并提供Educoder平台提交与调试的实用技巧。

weixin_30897233的博客 476

Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,理论上只要能用本地机器ping通服务器,就可以用scp和sftp下载数据,这还是存在数据泄露可能的,所...

HPC&Geophysics攻城狮 5737

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):

出现了这样的情况的话如: CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "octomap_ros" with any of the following names: octomap_rosConfig.cmake octomap_ros-co

epnine的博客 8489

本地部署 OpenClaw:让 AI 真正“干活”的开源智能体,从核心概念到实战全流程

在大模型遍地开花的今天,我们早已习惯与 AI 聊天,但真正能**接管本地任务、自动化工作流**的“数字员工”却寥寥无几。OpenClaw 正是这样一款开源利器——它不仅是可本地运行的 AI 私人助理,更像一个“AI 操作系统内核”,能读写文件、执行终端命令、控制浏览器,所有数据本地存储,兼顾隐私与效率。而 Skills 作为它的标准化插件系统,更是让这份能力无限扩展。 本文将从核心概念拆解入手,再分系统给出**保姆级本地部署步骤**,包含环境准备、安装配置、技能安装与验证,甚至覆盖新手最易踩的坑,让你一次

ZhangJiqun&191cm&85kg 2501

jQuery版本冲突问题解决与分析

jQuery版本冲突问题解决与分析 最近在写项目的时候,在网上搜索了一个时间选择器的插件,想要添加到原先的项目中,但是在调试的过程中,却出现时间选择器若是能使用,则我的其他比如导航栏的特效就不能使用,若导航栏能够使用,则时间选择器就无法使用了,两者出现了冲突。 出现这样的问题,思路 由于是特效即脚本实现的,所以判断是脚本的问题,所以,直接注释掉原先中脚本文件代码,很块就发现是两个jQuery

DaokejiAnxIn的博客 4669

华为OD机试双机位C卷:日志排序 (Py/C/C++/Java/Js/Go)

华为OD机试双机C卷真题【日志排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-日志排序。

qq_45776114的博客 1754

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

关于多个版本的jquery冲突的问题

关于多个版本的jquery冲突的问题 关于多个版本的jquery冲突的问题 先加载新的版本jquery 然后使用no confi代码,直接上代码看效果 <script src="https://libs.baidu.com/jquery/1.9.1/j...

weixin_30810583的博客 160

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于jquery版本冲突问题

今天做项目时,碰到一个问题,纠结了好几个小时。我需要引入jquery-1.9.1.js来满足我引入的别的js文件,但同时,我也需要引入jquery.js,这个是必须要引入的。而这两个不能只引入一个,同时引入又碰到问题。后来,试了很长时间,终于发现一个办法可行。       var jQuery_1_9_1 = jQuery.noConflict(true);   然后,引入jque

machunmei2的专栏 1189

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于jquery框架版本冲突的问题

报错:(...).dialogisnotafunction现象:编写触发事件的函数(...).dialog is not a function 现象:编写触发事件的函数(...).dialogisnotafunction现象:编写触发事件的函数(‘taskDailog’).dialog(‘close’) 时报错 原因:jquery版本冲突的问题。当时项目中同时引入了两个版本的jquery(jquery.min.js与jquery-1.10.2.min.js) 解决方法:删除多余冲突的jquery,调整下

qq_36601836的博客 333

记一次jQuery出现版本冲突的问题

问题描述: 之前在写一个前台页面时同时引用了两个不同的控件,同时引入了jQuery-2.1.4.min.js和jquery-1.8.3.min.js,导致两个控件都不能正常显示。 解决方案: 被问题困扰很久,最终如愿解决! 只需要在script脚本里加这样一句就好了! jQuery.noConflict(); ...

小海绵的博客 475

两个不同版本的Jquery冲突问题

一个页面上由于调用的控件不一样,可能控件引用的Jquery的版本不同。那么该如何是好。  var jQuery_1_4_2 = $.noConflict();         $(document).ready(function () {}); 然后在function里面把有冲突的方法 的 $改成 jQuery_1_4_2即可解决冲突。 理论上是可以冲突多个。

wxg8681的专栏 721

解决jquery版本冲突问题

解决jQuery1.3.2和1.4.2的冲突。(测试通过) 第一步:在1.4.2的源代码的最后加上一句 var $j4 = jQuery.noConflict(true);//之所以在源码这里加,而不是像大多数文章提的在要用到的时候加,这是因为很多基于1.4.2的插件都要加,在这里加可以避免过多插件加这句代码导致重复。这一句是将1.4.2的jQuery和$的引用权限全部放弃。也就是基于1.4.2...

weixin_34396103的博客 98
上一篇: D3D中的AGP内存、系统内存、显存
下一篇: 编程安全学习笔记
shareCode
博客等级 码龄15年 125粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值