jQuery 插件运行机制和 $冲突解决
1、jQuery.fn.extend(object)
基本插件
假设我们要创建一个插件,使一组元素中的文本变为绿色。我们要做的就是添加一个名为greenify的函数, $.fn 将像其他任何jquery对象方法一样使用。
$.fn.greenify = function() {
this.css("color","green");
}
//使用
$("a").greenify();
链式操作
jQuery 的一大特性就是链式操作,这是你可以将几个操作链接到一个选择器上。这是通过jQuery对象方法再次返回原始的jQuery对象来完成的。
$.fn.greenify = function() {
this.css("color","green");
return this;
}
$("a").greenify().addClass("greenified");
保护 $ 并添加范围
$ 变量在javascript 库中非常的流行,如果你也使用了另外一个库,这就有可能发生$ 冲突,当然你可以使用 jQuery.noConflict()方式解决。
jQuery.noConflict();
jQuery.("div p").hide();
// 其他库使用$
$("content").style.display = 'none';
运行jQuery.noConflict();将变量$ 的控制器让渡给第一个实现它的库。运行之后只能使用jQuery变量访问jQuery 对象。虽然这样解决了$冲突,但是破坏了插件的使用。
为了与其他插件一起工作,并且使用$ 作为jquery 的别名,我们需要将所有代码放入立即执行函数表达式中,然后传递该函数jQuery并命名该参数$。
(function($) {
$.fn.greenify = function() {
this.css("color","green");
return this;
}
}(jQuery));
接收选项
随着插件越来越复杂,通过接收参数实现可定制化,最简单的方法是使用对象字面量,特别是有很多参数时。
(function($) {
$.fn.greenify = function(options) {
var settings = $extend({
color: "#556b2f",
backgroundColor: "white"
},options);
return this.css: settings.color,
backgroundColor: settings.backgroundColor
});
}(jQuery));
//使用
$("div").greenify({
color: "orange"
})
// color 的默认值 #556b2f 就被取代为橙色。
2、$.extend(object)
作用:拓展jQuery对象本身,在jQuery命名空间上增加新函数
jQuery.extend({
min:function(a,b) {
return a < b ? a : b
},
max:function(a,b) {
return a > b ? a : b
}
});
// 使用
jQuery.min(2,3);
jQuery.max(4,5);
jQuery 插件运行机制和 $冲突解决的更多相关文章
- jQuery与其他JS库冲突解决
实际开发中遇到JQuery与其他js库起冲突 究其原因,是它们的全局对象定义冲突了,特别是变量”$”, 可重载$函数.使用jQuery.noConflict()就可以通过重载$函数 例:项目中应用的 ...
- jQuery 的运行机制(How jQuery Works)
原文地址:http://learn.jquery.com/about-jquery/how-jquery-works/ linkjQuery: 基础知识 这是一个基本的教程,旨在帮助您开始使用jQue ...
- jQuery ui autocomplete 与easyUI冲突解决办法(重命名ui的autocomplete 和menu部分)
http://jqueryui.com/download/ UI定制只选autocomplete 会自动把依赖的menu模块也加入进来--然而easyUI也有自己的menu,于是就-- 折腾了好久 ...
- 编写jQuery插件的方法和注意点
编写jQuery插件的方法和注意点 插件的种类 jQuery的插件主要分为3种类型. 1. 封装对象方法的插件 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的 ...
- 【jQuery基础学习】08 编写自定义jQuery插件
目的:虽然jQuery各种各样的功能已经很完善了,但是我们还是要学会自己去编写插件.这样我们可以去封装一些项目中经常用到的专属的代码,以便后期维护和提高开发效率. jQuery插件的类型: 封装对象方 ...
- jQuery 插件写法2
转载:http://www.xuanfengge.com/jquery-plug-in-written-summary-and-summary-of-writing-object-oriented-m ...
- jQuery 插件写法
一.jQuery插件的类型 1. jQuery方法 很大一部分的jQuery插件都是这种类型,由于此类插件是将对象方法封装起来,在jQuery选择器获取jQuery对象过程中进行操作,从而发挥jQue ...
- jQuery库(noConflict)冲突解决机制
很多JSFramework库选择使用$符号作为一个函数或变量名,而在实际的项目开发,模板语言,则有可能"$"符号是模板语言keyword.例如Veclocity模板语言,$它是ke ...
- 解决jQuery插件冲突
项目框架的JS库集成了jQuery,Layout页面(模板页面,类似ASP.NET的母版页)中引用了这些JS,后来使用图表插件(图表插件是基于jQuery的)的时候,项目框架中的JS和图表插件有冲突, ...
随机推荐
- 添加用户到 sudo
sudo 简介: 在 Linux 中系统管理员可以通过 sudo 实用程序让用户或组能够作为另一个用户运行命令.换句话说,可以分派命令特权,而不需要另一个用户的密码.root 用户通过在 /etc/s ...
- CodeForces 76A Gift - 最小生成树
The kingdom of Olympia consists of N cities and M bidirectional roads. Each road connects exactly tw ...
- SC命令---安装、开启、配置、关闭windows服务 bat批处理(转载)
转载:http://www.jb51.net/article/49627.htm 转载:http://blog.csdn.net/c1520006273/article/details/5053905 ...
- 蚂蚁感冒|2014年蓝桥杯B组题解析第八题-fishers
蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...
- Linux CentOS 7 下 JDK 安装与配置
前言 简单记录一下在CentOS 7中安装配置JDK 1.7的全过程~ ( 安装别的版本或者jre一样) 下载 首先是jdk 1.7 64bit & 32bit的下载地址: jdk-7u79 ...
- Java名称由来
2000年度的JavaOne国际会议大厅热闹非凡,一阵阵浓郁的咖啡味儿香气扑鼻.从世界各地汇集到旧金山参加会议的Java精英们兴奋异常,排着长队,等待得到一杯由Java语言控制的咖 ...
- junit中test注解测试使用案列解析一
本文原创,转载请注明出处 在写代码的过程中,只想测试部分代码,调试一小段功能有没有通的情况下,可以用该方法: 以下为在项目中测试一个小功能的案例,在此记录一下, /** * <解析查询磁 ...
- 指数循环节 求A的B次方模C
phi(c)为欧拉函数, 欧拉定理 : 对于互质的正整数 a 和 n ,有 aφ(n) ≡ 1 mod n . A^x = A^(x % Phi(C) + Phi(C)) (mod C) (x & ...
- MongoDB(课时28 group操作)
3.7.3 group操作 使用“group”操作可以实现数据的分组操作,MongoDB里将集合依据不同的的key进行分组操作,并且每个组产生一个处理文档. 范例:查询年龄大于等于19岁的学生信息,并 ...
- [ogre]ogre::Animation
参考:http://blog.csdn.net/leonwei/article/details/5819248 http://blog.csdn.net/debugconsole/article/de ...