jQuery 插件入门
先看http://www.cnblogs.com/lideng/p/3605551.html
http://www.cnblogs.com/xcj26/p/3345556.html (非常细致 很多你会想到的问题在这里都有答案)
第一篇博文讲到给jquery增加方法的两种方式
静态方法和 jquery对象的方法
像$.each 这种就属于静态方法 $('xxx').on(...) jquery对象的方法
$.extend(object) 可以理解为JQuery 添加一个静态方法。
$.fn.extend(object) 可以理解为JQuery实例添加一个方法。
这是雨夜带刀以前写的一个jQuery 插件
http://stylechen.com/jquery-tabs.html
/* =================================================
// jQuery Tabs Plugins 1.0
// author:chenyg@5173.com
// URL:http://stylechen.com/jquery-tabs.html
// 4th Dec 2010
// =================================================*/
// 第一个; 是为了防止和之前没有写;作为结束语句的js发生冲突
;(function($){
$.fn.extend({
Tabs:function(options){
// 处理参数
options = $.extend({
event : 'mouseover',
timeout : 0,
auto : 0,
callback : null
}, options); var self = this, //原来这里写的是 $(this) 但是这里的this 已经是一个Jquery对象了 这个this就是调用Tab那个元素的Jquery对象 也就是$('.demo1')
tabBox = self.children( 'div.tab_box' ).children( 'div' ),
menu = self.children( 'ul.tab_menu' ),
items = menu.find( 'li' ),
timer;
// elem是一个Tab head
var tabHandle = function( elem ){
elem.siblings( 'li' )
.removeClass( 'current' )
.end()
.addClass( 'current' );
//关于end()
//end() 相当于返回初始选择器的结果 这里经过一次 end()操作后 再次得到elem对象
// 其实相当于
// elem.siblings('li').remove('current');
// elem.addClass('current');
tabBox.siblings( 'div' )
.addClass( 'hide' )
.end()
.eq( elem.index() )
.removeClass( 'hide' );
// $().index() 返回选择的元素在同级别元素索引的位置
}, delay = function( elem, time ){
time ? setTimeout(function(){ tabHandle( elem ); }, time) : tabHandle( elem );
}, start = function(){
if( !options.auto ) return;
timer = setInterval( autoRun, options.auto );
}, autoRun = function(){
var current = menu.find( 'li.current' ),
firstItem = items.eq(0),
len = items.length,
index = current.index() + 1,
item = index === len ? firstItem : current.next( 'li' ),
i = index === len ? 0 : index; current.removeClass( 'current' );
item.addClass( 'current' ); tabBox.siblings( 'div' )
.addClass( 'hide' )
.end()
.eq(i)
.removeClass( 'hide' );
};
/* items 是Tab head */
items.bind( options.event, function(){
/*事件绑定里面的this 就是触发该事件的元素(不是jQuery对象) 在addEventListener中的也是如此 不过如果是时间代理就需要用到target了*/
delay( $(this), options.timeout );
if( options.callback ){
options.callback( self );
}
}); if( options.auto ){
start();
self.hover(function(){
clearInterval( timer );
timer = undefined;
},function(){
start();
});
} return this;
}
});
})(jQuery);
jQuery 插件入门的更多相关文章
- jQuery插件入门
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写("#"),("#"),("."),写了几年就对别人说非常熟悉JQ ...
- 关于jquery插件 入门
关于 JavaScript & jQuery 的插件开发 最近在温故 JavaScript 的面向对象,于是乎再次翻开了<JavaScript高级程序设计>第3版,了解到其中常 ...
- 从零开始学习jQuery (一) 入门篇
本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些 ...
- jQuery插件:跨浏览器复制jQuery-zclip
jQuery-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题.jQuery-zclip插件需要Flash的支持,使用时记得安装Adobe F ...
- jQuery插件开发入门
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间.这篇文章将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱. 入门 编写一个jQuery插件开始于给jQuery.fn加入 ...
- jQuery的入门与简介
jQuery的入门与简介<思维导图> <初学者请各位高手指点指点> jQuery是继Prototype之后又一个优秀的JavaScript库,在JavaScript基础上我 ...
- jQuery UI 入门之实用实例分享
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
- jQuery UI 入门之实用实例
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
- python 全栈开发,Day58(bootstrap组件,bootstrap JavaScript 插件,后台模板,图表插件,jQuery插件库,Animate.css,swiper,运行vue项目)
一.bootstrap组件 无数可复用的组件,包括字体图标.下拉菜单.导航.警告框.弹出框等更多功能. 组件和插件的区别? 插件:一个功能,比如js文件 组件:html css js 组件包含插件 面 ...
随机推荐
- U3D学习使用笔记(二)
1.在移动端www.texture使用时不能实时加载纹理,www.LoadImageIntoTexture使用没问题 2.public FaceFeature FaceFeatureData ...
- 浅谈C中的指针和数组(三)
上一个博客我们得到了一个结论: 指针和数组根本就是两个完全不一样的东西.只是它们都可以“以指针形式”或“以下标形式”进行访问.一个是完全的匿名访问,一个是典型的具名+匿名访问.一定要注意的是这个“以X ...
- linux----定义命令别名
1.定义命令别名的语法: alias nickName='command'#用于定义. unalias nickName#用于撤消一个别名的定义. 如:alias cls='clear' 2.应该要 ...
- 排序-java
今天座右铭----每天的学习会让我们不断地进步! 往往面试中都会让我们用一种排序方法做一道排序题,下面我就罗列出快速排序.冒泡排序.插入排序.选择排序的java代码! 1.快速排序 public cl ...
- 【POJ】3009 Curling 2.0 ——DFS
Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11432 Accepted: 4831 Desc ...
- jquery判断移动设备代码片段;pc、iphone、安卓
$(document).ready(function () { /* 判断设备*/ var browser={ versions:function(){ var u = navigator.userA ...
- word-wrap,white-space和text-overflow属性
(1) //在断点处换行 word-wrap: normal; //允许在长单词进行换行 word-wrap: break-word; (2) white-space:怎么处理元素间的空白 white ...
- docker private registry使用
一.搭建harbor: 步骤:略 二.命令行操作: 登录:docker login docker01 tag image: tag 一个 image,名称一定要标准( registryAddress[ ...
- Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间的区别
Jquery是优秀的Javascrīpt框架.我们现在来讨论下在 Jquery 中两个页面载入后执行的函数. $(document).ready(function(){ // 在这里写你的代码... ...
- JavaScript之获取和设置元素属性
1.与我前面的随笔获取元素的那些方法不同http://www.cnblogs.com/GreenLeaves/p/5689075.html 获取元素属性的方法getAttribute()不属于docu ...