当我们画出了UI之后就可以正式编写jQuery插件代码了,不过在着之前我们还需要对jQuery插件开发的一些规范性有一些了解。
1. 使用闭包:
(function($) {
// Code goes here
})(jQuery);
这是来自jQuery官方的插件开发规范要求,使用这种编写方式有什么好处呢?
a) 避免全局依赖。
b) 避免第三方破坏。
c) 兼容jQuery操作符'$'和'jQuery '
我们知道这段代码在被解析时会形同如下代码:
var jq = function($) {
// Code goes here
};
jq(jQuery);
这样效果就一目了然了。
2. 扩展
jQuery提供了2个供用户扩展的‘基类’ - $.extend和$.fn.extend.
$.extend 用于扩展自身方法,如$.ajax, $.getJSON等,$.fn.extend则是用于扩展jQuery类,包括方法和对jQuery对象的操作。为了保持jQuery的完整性,我比较 趋向于使用$.fn.extend进行插件开发而尽量少使用$.extend.
3. 选择器
jQuery提供了功能强大,并兼容多种css版本的选择器,不过发现很多同学在使用选择器时并未注重效率的问题。
a) 尽量使用Id选择器,jQuery的选择器使用的API都是基于getElementById或getElementsByTagName,因此可以知道 效率最高的是Id选择器,因为jQuery会直接调用getElementById去获取dom,而通过样式选择器获取jQuery对象时往往会使用 getElementsByTagName去获取然后筛选。
b) 样式选择器应该尽量明确指定tagName, 如果开发人员使用样式选择器来获取dom,且这些dom属于同一类型,例如获取所有className为jquery的div,那么我们应该使用的写法 是$('div.jquery')而不是$('.jquery'),这样写的好处非常明显,在获取dom时jQuery会获取div然后进行筛选,而不是 获取所有dom再筛选。
c) 避免迭代,很多同学在使用jQuery获取指定上下文中的dom时喜欢使用迭代方式,如$('.jquery .child'),获取className为jquery的dom下的所有className为child的节点,其实这样编写代码付出的代价是非常大 的,jQuery会不断的进行深层遍历来获取需要的元素,即使确实需要,我们也应该使用诸如$(selector,context), $('selector1>selector2'), $(selector1).children(selector2), $(selctor1).find(selector2)之类的方式。
js插件开发的一种方法:
js代码:
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
(function ($) {
//默认参数 (放在插件外面,避免每次调用插件都调用一次,节省内存)
var defaults = {
color: '红色'
};
//扩展
$.fn.extend({
//插件名称
height: function (options) {
//覆盖默认参数
var opts = $.extend(defaults, options);
//主函数
return this.each(function () {
//激活事件
var obj = $(this);
obj.click(function () {
alert(opts.color);
});
});
}
})
})(jQuery);
$(function () {
$("p").height({ color: 'black' });
});
</script>
分享到:
相关推荐
在JavaScript插件开发的世界里,平衡实用性和灵活性是一项挑战。作为一个开发者,你可能会面临到是否使用现有的插件或自己创建的决策。这篇文章将探讨这两种选择的优缺点,并给出如何开发一个既轻量又具备强大适应性...
JS插件开发之LightBox,可兼容到IE6
其插件开发指南详细介绍了Illustrator插件的概念、结构、与Illustrator的交互方式、API历史发展概要以及插件开发的具体实现。接下来,我将系统地梳理这些知识点。 首先,插件是Adobe Illustrator中用于扩展或改变...
Eclipse作为一个强大的开源集成开发环境(IDE),广泛用于Java编程,但...使用Eclipse的JavaScript插件JSEditor,意味着你可以在一个专业且功能全面的环境中编写和调试JavaScript代码,享受到高效且便捷的开发体验。
在前端开发领域,JavaScript插件开发是一个重要的分支,它主要涉及编写JavaScript代码来实现特定功能或效果。这些插件可能用来丰富网页的交互性,提供特定的用户界面组件,或是执行后台任务。在开发这些插件时,...
为了使用JSEditor插件,首先需要下载压缩包"Eclipse的JavaScript插件 JSEditor.7z",然后解压并按照Eclipse的扩展机制进行安装。通常,这涉及打开Eclipse的“帮助”菜单,选择“安装新软件”,然后指向解压后的插件...
IntelliJ IDEA,作为一款强大的Java开发集成环境,也提供了对Vue.js的支持,通过安装Vue.js插件,可以极大地提升开发Vue项目的效率。 首先,Vue.js插件在IDEA中的主要功能包括: 1. **语法高亮**:Vue.js插件为Vue...
下面将详细介绍"Eclipse下的JS插件"这一主题,以及如何利用这些插件提升JavaScript开发体验。 1. **JavaScript Development Toolkit (JDT)**:虽然Eclipse默认支持JS开发,但其功能相对基础。为了提供更强大的JS...
【标题】:“JS插件”通常...对于想要学习JS插件开发或者提高网页交互性的开发者来说,这是一个很好的学习资源。通过研究这些文件,可以了解如何将JS插件与后端服务结合,以及如何利用jQuery等库来实现复杂的前端功能。
"yunzai-js插件 v1.0.zip"是一个包含JavaScript插件的压缩包,主要用于软件工具的开发和使用。这个插件可能是开发者为提高工作...对于想要深入JavaScript插件开发或进行相关毕业设计的人员,这是一个非常有价值的资源。
本文将详细介绍两款在Eclipse中广受欢迎的JavaScript插件:jsEditor和jsEclipse。 首先,我们来看jsEditor。这款插件专为Eclipse设计,旨在提供一个高效、便捷的JavaScript开发环境。jsEditor的特点包括代码高亮、...
### Vue.js插件开发详解 #### 认识Vue.js插件 Vue.js的流行使得相关的插件越来越多,从官方推荐的vue-router、vuex到社区贡献的海量插件,它们极大地丰富了Vue.js的功能。虽然很多人对这些插件的使用驾轻就熟,但在...
开发一个JavaScript Word插件需要掌握以下几个关键技能: 1. **JavaScript基础**:熟悉JavaScript语法,理解异步编程,如Promise和async/await。 2. **HTML/CSS**:构建用户界面,布局和样式设计。 3. **Office ...
Chrome插件开发是一个充满创新和实用性的领域,它允许开发者为全球最大的网络浏览器之一——Google Chrome,添加自定义功能和增强用户体验。在这个“chrome插件开发 - tab页面切换插件”项目中,我们关注的焦点是...
### JavaScript插件化开发详解 #### 一、开篇分析 在现代Web开发中,插件化编程已经成为提高代码复用性和模块化...以上就是关于JavaScript插件化开发的基本介绍和示例,希望对学习JavaScript插件开发的朋友有所帮助。
### TinyMCE插件开发详解 #### 一、TinyMCE简介 TinyMCE是一款流行的开源富文本编辑器,广泛应用于各种网站和应用程序中。它提供了丰富的功能和良好的用户体验,支持自定义插件来扩展其功能。本文将详细介绍...
这个"Chrome插件开发完整demo"提供了一个完整的实例,帮助开发者深入理解如何构建自己的Chrome扩展。下面,我们将详细探讨Chrome插件开发的相关知识点。 1. **Chrome插件架构** Chrome插件由几个关键组件组成:`...
"海康威视摄像头WEB无插件开发包 V3.2(官方版本)"是海康威视为开发者提供的一种高效、便捷的在线视频流处理工具,旨在帮助开发者在网页端实现对海康威视摄像头的实时监控功能,而无需依赖任何浏览器插件。...
2. **原生插件开发背景** 在uni-app中,有些特定的Android功能,如获取IMEI、使用蓝牙或访问硬件设备,由于安全或性能原因,不能直接在JavaScript层处理,这就需要通过原生插件来实现。原生插件可以是Java或Kotlin...