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和图表插件有冲突, ...
随机推荐
- Educational Codeforces Round 21 Problem A - C
Problem A Lucky Year 题目传送门[here] 题目大意是说,只有一个数字非零的数是幸运的,给出一个数,求下一个幸运的数是多少. 这个幸运的数不是最高位的数字都是零,于是只跟最高位有 ...
- USB Compound Device,USB复合设备 ; USB Composite Device,USB组合设备【转】
本文转载自:https://blog.csdn.net/autumn20080101/article/details/52776863 科普下USB复合设备和USB组合设备的区别. 关键字 Commu ...
- 安卓开发 Activity入门
生命周期 Activity包含5种状态,涉及7种方法 1. 启动状态 2. 运行状态 *** 即使内存不足,Android先销毁栈底的Activity,来确保当前Activity正常运行 3. 暂停状 ...
- 论文笔记——Factorized Convolutional Neural Networks
1. 论文思想 将3D卷积分解为spatial convolution in each channel and linear projection across channels. (spatial ...
- Visual Studio 项目模板制作(二)
上一篇,我们制作了项目模板,本篇我制作项模板 首先,从我们需要导出模板的项目中,文件->导出模板,弹出 导出模板向导 对话框 选择项模板,点击下一步 选择要导出的项,点击下一步 选择要Refer ...
- java中集合格式及json格式的特点和转换
作者原创:转载请注明出处 今天在写代码,遇到一个难点,由于要调用webservice接口,返回的为一个list集合内容,从webservice调用接口返回的为一个string的io流, 在调用接口的地 ...
- miRNA几大常用的数据库
1.miRbasehttp://www.mirbase.org/2.miRDBhttp://www.mirdb.org/miRDB/policy.html3.miRandahttp://www.mic ...
- 样本打散后计算单特征 NDCG
单特征 NDCG 能计算模型的 NDCG,也就能计算单特征的 NDCG,用于评估单特征的有效性,跟 Group AUC 用途一样 单特征 NDCG 如何衡量好坏 如果是 AUC,越大于或小于 0.5, ...
- np.linspace
来自:有一种宿命叫无能为力 在指定的间隔内返回均匀间隔的数字.(返回num个样本数据,在[start, stop]). 函数形式: linspace(start, stop, num = 50, en ...
- 《剑指offer》第四题(二维数组中的查找)
// 二维数组中的查找 // 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按 // 照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 // 整数,判断数组 ...