jquery 拓展
2016-08-18 15:03
309 查看
1. 概述
jquery允许拓展自定义的方法, 绑定到$.fn对象上,
编写一个jQuery插件的原则:
给
插件函数最后要
插件函数要有默认值,绑定在
用户在调用时可传入设定值以便覆盖默认值。
2. example
3. 使用过滤 针对特定元素的拓展
类似submit方法只能作用在form上,我们也可以自定义针对指定dom元素使用的方法。
jquery的filter这时派上了用场。
example
jquery允许拓展自定义的方法, 绑定到$.fn对象上,
编写一个jQuery插件的原则:
给
$.fn绑定函数,实现插件的代码逻辑;
插件函数最后要
return this;以支持链式调用;
插件函数要有默认值,绑定在
$.fn.<pluginName>.defaults上;
用户在调用时可传入设定值以便覆盖默认值。
2. example
<html> <body> <div id="test-highlight1"> <p>什么是<span>jQuery</span></p> <p><span>jQuery</span>是目前最流行的<span>JavaScript</span>库。</p> </div> <script src="jquery-3.1.0.js"></script> <script type="text/javascript"> $(function(){ 'use strict'; (function(){ $.fn.highlight = function (options) { var opts = $.extend({}, $.fn.highlight.defaults, options); // this已绑定为当前jQuery对象: this.css('backgroundColor', opts.backgroundColor).css('color', opts.color); return this; } $.fn.highlight.defaults = { 'backgroundColor' : '#d85030', 'color' : '#fff8de' }; $.fn.highlight.defaults.backgroundColor = '#659f13'; $.fn.highlight.defaults.color = '#f2fae3'; $("#test-highlight1 span").highlight(); $('#test-highlight1 span').highlight({ color : '#dd1144' }); })(); }); </script> </body> </html>
3. 使用过滤 针对特定元素的拓展
类似submit方法只能作用在form上,我们也可以自定义针对指定dom元素使用的方法。
jquery的filter这时派上了用场。
example
<html> <body> <div id="test-external"> <p>如何学习<a href="http://jquery.com">jQuery</a>?</p> <p>首先,你要学习<a href="/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000">JavaScript</a>,并了解基本的<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a>。</p> </div> <script src="jquery-3.1.0.js"></script> <script type="text/javascript"> $(function(){ 'use strict'; (function(){ $.fn.external = function () { return this.filter('a').each(function(){ var a = $(this); var url = a.attr('href'); if(url && (url.indexOf('http://')===0 || url.indexOf('https://')===0)){ a.attr('href', '#0') .removeAttr('target') .append('<i class="uk-icon-external-link"></i>') .click(function(){ if(confirm("确认跳转到"+url)){ window.open(url); } }); } }); } $('#test-external a').external(); })(); }); </script> </body> </html>
相关文章推荐
- javascript事件之:jQuery事件中实例对象和拓展对象之间的通信
- JQuery拓展控件类库
- Jquery 拓展一个点击按钮自动高亮的方法
- jquery validate表单验证插件的基本使用方法及功能拓展
- 拓展jQuery的serialize(),将form表单转化为json对象。
- jQuery下扩展插件和拓展函数的写法
- Jquery之Array拓展的remove方法
- jquery-easyui拓展之datagrid复合表头列锁定/解锁和列隐藏/显示
- jQuery前端多语言拓展方案
- jquery拓展器的
- jQuery插件开发/拓展
- 动态数字时钟jquery拓展小插件
- js获取网页的url文件名( 例如index.aspx),js获取url的参数(例如获取 ?cid=joeylee的值),给jquery拓展方法
- jquery拓展插件开发
- 拓展jquery.slotmachine.js,设置停止位置
- jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
- 拓展你的jQuery!
- 拓展Jquery对象,实现Post提交并跳转
- jquery弹簧式动画拓展