文档章节

supesite 等程序中 $ 函数与 jquery 冲突的解决办法

EDIAGD
 EDIAGD
发布于 2013/11/10 21:21
字数 337
阅读 102
收藏 0

1.替换选择器函数

将原程序中的:

function $(id) {

    return document.getElementById(id);

}

 

替换为:

function $(id) {

    if (typeof jQuery == 'undefined' || (typeof id == 'string' && document.getElementById(id))) {

        return document.getElementById(id);

    } else if (typeof id == 'object' || !/^\w*$/.exec(id) || 
                            /^(body|div|span|a|input|textarea|button|img|ul|li|ol|table|tr|th|td)$/.exec(id)){

        return jQuery(id);

    }

    return null;

}

做一个兼容,对于以前直接用字符串ID的调用依旧使用document.getElementById(id)去获取DOM对象;而如果传入的ID是对象,或者里面有特殊符号(如 # . : ^ 等 jQuery 选择器符号)或者是常用的html标签,就使用jQuery选择器去获取jQuery对象。

 

2.需要先加载jquery的库,然后加载声明这个兼容的 $ 函数的js文件,以覆盖掉jquery的 $ 函数。

<script language="javascript" type="text/javascript" src="source/script_jquery.js"></script>

<script language="javascript" type="text/javascript" src="source/script_common.js"></script>

…………

 

假如有个TAG的ID是'ctrl_with_id',使用 $('ctrl_with_id') 取得的是DOM的对象,使用$('#ctrl_with_id')可取得jQuery对象,互相不会冲突。

如此,原来程序中的 $ 函数依旧工作,而且同时可以使用 $ 作为jQuery的选择器。

 

这么解决冲突,暂时还未发现问题。

后续有很多开发填坑的文章发布,如果对你有帮助,请支持和加关注一下

http://e22a.com/h.05ApkG?cv=AAKHZXVo&sm=339944

https://shop119727980.taobao.com/?spm=0.0.0.0 

本文转载自:http://hi.baidu.com/cnkarl/item/73f27bd7ac8ba049fb5768dd

共有 人打赏支持
EDIAGD
粉丝 48
博文 149
码字总数 58327
作品 0
嘉定
后端工程师
SupeSite标签数据源的处理及页面标签的定义技巧

开发的CMS系统中模板引擎和标签的开发算是告一段落,而在Discuz的CMS系统SupeSite中借鉴到了很多东西,略作小记,好记性永远不如烂键盘。 当需要将页面解析成静态页面时,当然需要借助模板引...

达摩院法师
2010/10/26
0
0
一键PHP环境搭建教程,php本地环境轻松搞定!

最近闲来无事,特地的研究了下网上比较热门的php网站程序(如:dedecms、wordpress、论坛Discuz等 ),但是得先搭建本地PHP环境啊,由于我是个PHP新手,在搭建PHP环境时晕了,网上相关的教程...

红薯没我帅
2012/03/02
0
0
解决jQuery和其它库的冲突

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

Junn
2013/01/21
0
0
谈谈 jQuery 中的防冲突(noConflict)机制

许多的 JS 框架类库都选择使用 $ 符号作为函数或变量名,jQuery 是其中最为典型的一个。在 jQuery 中,$ 符号只是 window.jQuery 对象的一个引用,因此即使 $ 被删除,window.jQuery 依然是保...

i33
2013/03/13
0
0
从零实现一个简易的jQuery框架之二—核心思路详解

如何读源码 整体框架甚是复杂,也不易读懂。但是若想要在前端的路上走得更远、更好,研究分析前端的框架无疑是进阶路上必经之路。但是庞大的源码往往让我们不知道从何处开始下手。在很长的时...

余大彬
08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
33分钟前
0
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
5
0
JavaEE——Junit

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Junit Junit又名单元测试,Junit是用来测试Jav...

凯哥学堂
昨天
2
0
读《美丽新世界》

一、背景 十一国庆节从重庆回深圳的时候,做得绿皮车,路上看了两本书:李笑来的《韭菜的自我修养》和禁书《美丽新世界》。 上篇文章已经分享了 读《韭菜的自我修养》,这篇文章来记录一下《...

tiankonguse
昨天
1
0
archlinux下基于Jenkins,docker实现自动化部署(持续交互)

本文永久更新地址:https://my.oschina.net/bysu/blog/2250954 【若要到岸,请摇船:开源中国 不最醉不龟归】 -----------------------------------第一部分Jenkins的安装与使用-----------...

不最醉不龟归
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部