Juqery插件编写 基础说明
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index3</title> <script src="/plugins/jquery/jquery-1.9.1.js"></script>
<script type="text/javascript"> $(function ($) { // 去除冲突 // 实现$("#txt1").SpecialAlertTip({ width: 300 });
$.fn.SpecialAlertTip = function (options) { var settings = {
width: 100,
defalutText: "It is Default",
placeholder: 'Hello Jquery pulgIn',
showSearch: true,
}
// 合并 两个js对象 $.extend({name:1,width:23},{width:55});
settings = $.extend(settings, options); /**
* Constructor
*/
function SpecialAlertTip(select, settings) {
debugger;
this.$select = $(select);
this.settings = settings;
this.create();
} /**
* Prototype class
* 获取: ShipBusiness.origianlSelect = $("#CustomCargoRemarkV2").data("fSelect");
* 调用封装控件方法: ShipBusiness.origianlSelect.reload();
*/
SpecialAlertTip.prototype = {
create: function () {
debugger;
this.$select.css("width", this.settings.width + "px")
this.$select.css("border", "1px solid green");
this.$select.before('<div class="fs-label-wrap"><div class="fs-label">' + this.settings.placeholder + '</div><span class="fs-arrow"></span></div>');
this.$select.before('<div class="fs-dropdown hidden"><div class="fs-options"></div></div>');
this.reload();
}, reload: function () {
debugger;
if (this.settings.showSearch) {
var search = '<div class="fs-search"><input type="search" placeholder="' + this.settings.searchText + '" /></div>';
//this.$wrap.find('.fs-label-wrap').prepend(search);
}
//this.reloadDropdownLabel();
}, destroy: function () {
debugger; }
} /**
* Loop through each matching element
*/
return this.each(function () {
debugger;
var data = $(this).data('SpecialAlertTip'); if (!data) {
data = new SpecialAlertTip(this, settings);
$(this).data('SpecialAlertTip', data);
} if (typeof settings == 'string') {
data[settings]();
}
});
} }) // 使用新封装的 jquery控件
$(document).ready(function () {
$("#txt1").SpecialAlertTip({ width: 300 });
//如想调用 内部方法
var speciallTxt = $("#txt1").data('SpecialAlertTip');
speciallTxt.reload();
speciallTxt.settings.showSearch = false;
})
</script> </head>
<body>
<div>
<div style="width:300px;border:1px solid silver;text-align:center;margin-bottom:10px;line-height:30px;font-size:18px;margin-left:auto;margin-right:auto;height:30px; "> jQuery 控件封装实例</div>
<input type="text" id="txt1" />
</div>
</body>
</html>
Juqery插件编写 基础说明的更多相关文章
- jQuery插件编写基础之“又见弹窗”
本文将通过一个实例来引出jQuery插件开发中的一些细节,首先介绍下jQuery插件开发的一些基础知识. jQuery的插件开发主要分为两类: 1. 类级别,即在jQuery类本身上扩展方法,类似与 ...
- vue插件编写与实战
关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 热爱vue开发的同学肯定知道awesome-vue 这个github地址,里面包含了数以千计的vue ...
- chrome插件编写基本入门
chrome插件编写基本入门 http://igeekbar.com/igeekbar/post/331.htm #精选JAVASCRIPTCHROME 作为一名程序猿,怎么能不会写chrome插件 ...
- BugScan插件编写高(gǎo)级(jī)教程
声明:本文最先发布在:http://q.bugscan.net/t/353 转载请注明出处 有问题可以和我交流 邮件(Medici.Yan@gmail.com) 个人博客地址:http://www.c ...
- (转)jQuery插件编写学习+实例——无限滚动
原文地址:http://www.cnblogs.com/nuller/p/3411627.html 最近自己在搞一个网站,需要用到无限滚动分页,想想工作两年有余了,竟然都没有写过插件,实在惭愧,于是简 ...
- jQuery插件编写学习+实例——无限滚动
最近自己在搞一个网站,需要用到无限滚动分页,想想工作两年有余了,竟然都没有写过插件,实在惭愧,于是简单学习了下jQuery的插件编写,然后分享出来. 先说下基础知识,基本上分为两种,一种是对象级别的插 ...
- jmeter 读写excel插件编写教程系列(1) -开篇
不知道为什么,jmeter 竟然不提供 读写excel 的Sampler! 但是在我们自动化接口测试过程中,参数化.保存测试数据,用excel 是比较好的解决方案! 接下来一段儿时间,大虫会抽出一些时 ...
- 【】Nessus安全测试插件编写教程
Nessus安全测试插件编写教程 作者:Renaud Deraison 翻译:nixe0n 1.怎样编写一个高效的Nessus安全测试插件 在Nessus安全测试系统中, 所有的安全测试都是由ness ...
- jQuery插件编写及链式编程模型小结
JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQu ...
随机推荐
- tensorflow教程:tf.contrib.rnn.DropoutWrapper
tf.contrib.rnn.DropoutWrapper Defined in tensorflow/python/ops/rnn_cell_impl.py. def __init__(self, ...
- Django 使用简单笔记
1. Django项目的启动: 1. 命令行启动 在项目的根目录下(也就是有manage.py的那个目录),运行: python3 manage.py runserver IP:端口--> 在指 ...
- python序列的深拷贝和浅拷贝
python中的不可变类型 列举:数值,字符串.元组.字节串 数值及字符串“可变”'的假象 num = 123 mystr = 'abc' print(id(num), num) print(id(m ...
- iView的Message提示框
全局配置message main.js Vue.prototype.$Message.config({ top: 70, duration:3 }); Vue.prototype.$Message.c ...
- vue新建项目之标准路由配置--父子嵌套界面
配置路由所有用到的地方总共四步或者说四处 1.index.js(src--router--index.js) 父子界面嵌套---需要配置子路由 import Vue from 'vue' import ...
- 磁盘I/O工作原理
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524947.html TODO Reference https://time.geekbang.or ...
- vue cli3以上的项目中如何使用axois请求本地json文件
首先明确一点,在vue cli3以上的版本中,存放静态资源的文件是public 我刚开始以为是和vue cli2一样需要放在static文件夹下,但是项目中没有这个文件夹,我就自己创建了一个,结果请求 ...
- 【Idea 】插件
FindBugs-IDEA Maven Helper VisualVM Launcher GenerateAllSetter Rainbow Brackets Translation P3c(Alib ...
- spring-boot整合shiro实现权限管理
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- window安装oracle和创建数据库
原文地址: https://www.cnblogs.com/hoobey/p/6010804.html #11g安装 https://www.cnblogs.com/qq1272850043/p/6 ...