基于jQuery的插件开发

(function($) {
//1、设置默认信息
//2、设置空的配置信息
//3、设置核心执行函数,包括配置信息的继承,元素的创建,功能函数的执行。
//4、通过扩展对象插件的方法对外提供函数接口
  var defaults = {
    //1、设置默认信息
  };

  var settings = {};//2、设置空的配置信息

  //3、设置核心执行函数,包括配置信息的继承,元素的创建,功能函数的执行。  
  var This = null;//设置全局的This
  function FnExe(options) {
    This = this;//在目标对象下赋值
    settings = $.extend(settings,defaults,option);//配置信息的继承
    Create();//元素的创建
    Fn();//功能函数
  }
  function Create() {}//创建的时候通过配置参数的数据对创建的元素进行渲染
  function Fn() {}
  $.fn.extend({//通过扩展对象插件的方法对外提供接口函数
    FnExe : FnExe
  });
}(jQuery);

//自己配置函数部分:
$(function() {
  $("#id").FnExe({
    //自己配置信息。
  });
});

================demo================

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width,initial-scale=1" name="viewport">
<title>Tab_test</title>
<style>
body{padding: 0;margin: 0;}
.btns{
width: 100%;
height: 3rem;
line-height: 3rem;
display: flex;
flex-direction: row;
justify-content: space-around;
}
.btn{
width: 33%;
text-align: center;
}
.active{
background: deepskyblue;
color: white;
}
.conts{
width: 100%;
height: auto;
}
.cont{
height: 40rem;
display: none;
}
</style>
</head>
<body>
<article id="Tab">
<!--<section class="btns">-->
<!--<div class="btn active">按钮1</div>-->
<!--<div class="btn">按钮2</div>-->
<!--<div class="btn">按钮3</div>-->
<!--</section>-->
<!--<aside class="conts">-->
<!--<div class="cont">按钮1的内容</div>-->
<!--<div class="cont">按钮2的内容</div>-->
<!--<div class="cont">按钮3的内容</div>-->
<!--</aside>-->
</article>
<script src="../lib/scripts/jquery-1.12.4.js"></script>
<script>
$(function() {//通过插件提供的接口做自己的配置参数
$(‘#Tab‘).FnTabExe({
btn : [‘体育‘,‘娱乐‘,‘新闻‘,‘视频‘,‘关于我们‘],
cont : [‘体育11111111‘,‘娱乐123123123‘,‘新闻fffffff‘,‘视频ffffffggggg‘,‘关于我们123‘],
event : ‘mouseover‘
});
});
(function($) {
//1、置默认信息
//2、配置信息
//3、核心执行函数,包括创建函数,功能函数等
//4、通过$.fn.extend(),基于对象的扩展,提供对外扩展的函数接口
var defaults = {//1、置默认信息
btn : ["导航一","导航二","导航三"],
cont : ["导航一的内容","导航二的内容","导航三的内容"],
event : "click"
};
var settings = {};//2、配置信息
var $This = null;
function FnTabExe(options) {//3、核心执行函数,包括创建函数,功能函数等
$This = this;
settings = $.extend(settings,defaults,options);
Create();
FnTab();
}
function Create() {
var $section = $("<section>");
$section.addClass("btns");
$This.append($section);
for(var i = 0; i < settings.btn.length;i++) {
var $btn = $("<div>"+settings.btn[i]+"</div>");
$btn.addClass("btn");
if(i==0) {
$btn.addClass("active");
}
$section.append($btn);
}
var $aside = $("<aside>");
$aside.addClass("conts");
$This.append($aside);
for(var i = 0;i < settings.cont.length;i++) {
var $cont = $("<div class=‘cont‘>"+settings.cont[i]+"</div>");
if(i==0) {
$cont.css("display","block");
}
$aside.append($cont);
}
}
function FnTab() {
$This.find(".btn").on(settings.event,function() {
$This.find(".btn").removeClass("active");
$(this).addClass("active");
$This.find(".cont").css("display","none");
$This.find(".cont").eq( $(this).index() ).css("display","block");
});
}
$.fn.extend({//4、通过$.fn.extend(),基于对象的扩展,提供对外扩展的函数接口
FnTabExe : FnTabExe
});
})(jQuery);
</script>
</body>
</html>

时间: 2024-11-08 03:28:10

基于jQuery的插件开发的相关文章

基于jQuery 的插件开发

谈到jQuery,对于开发人员是再熟悉不过了,从其诞生发展到到目前,一路走来,历经风雨变化十几载,依旧是开发人员使用最广泛.最常用.也是最成熟的js库.但其再成熟也不可能开发出所有的功能,于是乎就用了插件这么一说,用来拓展和补充jQuery 的功能. 插件开发最常用的两种方法: 1. 扩展 jQueyr 对象 jQuery.extend({ "funName" : function(){ } }); 使用方法 $.funName(); 或者这样写: (function($){ $.ex

基于jquery的邮箱输入联想插件开发

js代码: /*create by code_bunny 20140701 [email protected] https://github.com/OOP-Code-Bunny */ (function ($) { $.fn.autoComplate = function (opts) { this.each(function () { init.call(this, opts); }); return this; }; function init(opts) { var defaultOpt

基于jquery的ajax分页插件(demo+源码)

前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客园学习了很多的知识,看过很多人的分享.说来也惭愧,自己没能为园友们分享自己的所学所得(毕竟水平比较差). 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?).八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都屌屌的?之前一直从事.NET开发(现在在这边也是),

jquery特效分享-一款基于jQuery的仿百度首页滑动选项卡

今天给大家分享一款基于jQuery的仿百度首页滑动选项卡.这款选项卡适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 实现的代码. html代码: <div class="main-page"> <div class="left"> <div class="nav-back"> </div> <div class="

基于jQuery标题有打字效果的焦点图

给大家分享一款基于jQuery标题有打字效果的焦点图.之前为大家分享了好多jquery的焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 在线预览   源码下载 实现的代码. html代码: <!-- 代码 开始 --> <div id="header"> <div class="wrap"> <div id="slide-holder&q

jquery特效-基于jQuery仿淘宝红色分类导航

今天给大家分享一款基于jQuery仿淘宝红色分类导航.这款分类导航适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 实现的代码. html代码: <div id="nav"> <div class="area clearfix"> <div class="separate"> </div> <div class="

基于jquery开发的UI框架整理分析

根据调查得知,现在市场中的UI框架差不多40个左右,不知大家都习惯性的用哪个框架,现在市场中有几款UI框架稍微的成熟一些,也是大家比较喜欢的一种UI框架,那应该是jQuery,有部分UI框架都是根据jQuery研发出来的产品,现在也很常见了. 国产jQuery UI框架 (jUI) DWZ DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用,快速开发,降低ajax开发成本. jQuery 部件布局

基于jquery的bootstrap在线文本编辑器插件Summernote 简单强大

Summernote是一个基于jquery的bootstrap超级简单WYSIWYG在线编辑器.Summernote非常的轻量级,大小只有30KB,支持Safari,Chrome,Firefox.Opera.Internet Explorer 9 +(IE8支持即将到来). 特点: 世界上最好的WYSIWYG在线编辑器 极易安装 开源 自定义初化选项 支持快捷键 适用于各种后端程序言语 使用方法 使用html5文档 1 2 3 4 <!DOCTYPE html> <html> ..

10款基于jQuery的图片滑块焦点图插件

1.Material UI – Material Design CSS 框架 Material Design 是谷歌推出的全新的设计理念,采用大胆的色彩.流畅的动画播放,以及卡片式的简洁设计.Material Design 风格的设计拥有干净的排版和简单的布局,容易理解,内容才是焦点.Material UI 是一个 CSS 框架和一组实现谷歌 Material Design 设计规范的 React 组件.可以作为 NPM 安装包,使用 browserify 和 reactify 的依赖管理和 J