jQuery自定义插件入门实例1
来源:互联网 发布:贺知章回乡偶书二首 编辑:程序博客网 时间:2024/05/22 15:58
最近学习了jQuery自定义插件的相关知识,看着书集合一些博客的总结,自己写了一个小插件,主要是进行国际化使用的。使用的bootstrap的modal作为展示对象。首先将一个input框渲染成这种样式:
点击搜索按钮后弹出一个信息录入框,可以输入中英文:
输入完以后,点击确认可以将中文信息显示到原来的input框上。
以下是js代码(注意引入bootstrap的样式)
/** * Created by Joker on 2017/8/3. */ ;(function ($, window, document, undefined) { var methods = { init: function () { //样式渲染 this.addClass('form-control'); var $btn = $("<a role='button' class='input-group-addon' id='btn' style='border-radius: 5%'><i class='glyphicon glyphicon-search'></i></a>"); var $formGroup = $('<div class="input-group"></div>'); $formGroup.css('width', $settings.width); this.wrap($formGroup).after($btn); $("#btn").bind('click', methods.createModal); return this; }, confirm: function (e) { var $modal = $(e.target).closest('.modal'); var $cn = $modal.find('#chinese').val(); var $en = $modal.find('#english').val(); $(e.data.obj).modal('hide'); $id.val($cn); }, cancel: function (e) { $(e.data.obj).modal('hide'); }, createModal: function () { var $modal = $('<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">' + '<div class="modal-dialog">' + '<div class="modal-content">' + '<div class="modal-header">' + '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>' + '<h4 class="modal-title" id="myModalLabel">' + $settings.title + '</h4>' + '</div>' + '<div class="modal-body"><div>' + '<div class="form-group row">' + '<label for="chinese" class="col-md-3 text-right" style="line-height: 30px">中文:</label>' + '<div class="col-md-6"><input id="chinese" class="form-control" type="text"/></div>' + '</div>' + '<div class="form-group row">' + '<label for="english" class="col-md-3 text-right" style="line-height: 30px">英文:</label>' + '<div class="col-md-6"><input id="english" class="form-control" type="text"/></div>' + '</div></div>' + '<div class="modal-footer">' + ' <button type="button" class="btn btn-default" id="cancelBtn">' + $settings.cancelText + '</button>' + '<button type="button" class="btn btn-primary" id="confirmBtn">' + $settings.confirmText + '</button>' + '</div > ' + ' </div>' + '</div></div>'); $modal.find('#confirmBtn').bind('click', {obj: $modal}, methods.confirm); $modal.find('#cancelBtn').bind('click', {obj: $modal}, methods.cancel); $modal.modal('show'); } }; var $id = undefined; var $default = { width: '300px', title: '请输入多语言信息', confirmText: '确认', cancelText: '取消' }; var $settings = {}; $.fn.testPlugin = function (method, options) { $id = this; $settings = $.extend({}, $default, options); if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return methods.init.apply(this, arguments) } else { $.error('Method ' + method + ' does not exit in this plugin') } } })(jQuery, window, document);
使用方式:
<input id="he"/> <script> $('#he').testPlugin('init', { title: '请输入中英文名称', width: '400px', confirmText: '确认', cancelText: '返回' }); </script>
这只是一个小小的案例,还存在很多不完善的地方,比如没有给按钮添加回调处理,没有设置选择的语言类别,没有对输入做校验等,这些会进一步完善。
个人体会:写插件一定要写的尽善尽美,要尽可能的顾及到各种情况,保证通用性最高。
阅读全文
0 0
- jQuery自定义插件入门实例1
- JQuery入门(9)自定义插件
- 自定义jQuery PickList插件 - 用法与实例(1)
- JQuery入门实例1
- [ jQuery ] jquery 自定义插件!
- 自定义jQuery PickList插件 - 用法与实例(2)
- 自定义jQuery PickList插件 - 用法与实例(3)
- jquery ui 插件实例 (1)
- jquery ui 插件实例 (1)
- jQuery插件应用实例
- jQuery插件实例集合
- jquery插件开发实例
- jquery插件实例
- jQuery插件开发实例
- jQuery插件扩展实例
- jquery 自定义插件开发
- 自定义jQuery插件
- jquery自定义插件
- 进程死锁条件及原因
- 《leetCode》:Search for a Range
- Java基础—— 类之间的关系
- yarn-site.xml的配置
- Java基础—— 抽象类和接口
- jQuery自定义插件入门实例1
- 网络流算法总结
- 训练日记-7
- Spark Streaming源码初探 (3)
- 图和网络
- StringBuilder与StringBuffer
- 写DLL 时,加与不加 "Extern C"区别
- Super Jumping! Jumping! Jumping!
- axios以post方式传值的问题