在jquery中,插件开发常见的有:
一种是为$函数本身扩展一个方法,这种是静态扩展(也叫类扩展),这种插件一般是工具方法,
还有一种是扩展在原型对象$.fn上面的,开发出来的插件是用在dom元素上面的
一、类级别的扩展
$.showMsg = function(){ alert('hello,welcome to study jquery plugin dev'); } // $.showMsg();
注意要提前引入jquery库, 上例在$函数上面添加了一个方法showMsg,那么就可以用$.showMsg()调用了
$.showName = function(){ console.log( 'ghostwu' ); } $.showName();
这种插件比较少见,一般都是用来开发工具方法,如jquery中的$.trim, $.isArray()等等
二、把功能扩展在$.fn上,
这种插件就是用在元素上,比如,我扩展一个功能,点击按钮,显示当前按钮的值
$.fn.showValue = function(){ return $(this).val(); } $(function(){ $("input").click(function(){ // alert($(this).showMsg()); alert($(this).showMsg()); }); }); <input type="button" value="点我">
在$.fn上添加一个showValue方法, 返回当前元素的value值. 在获取到页面input元素,绑定事件之后,就可以调用这个方法,显示按钮的值 "点我",在实际插件开发中,常用的就是这种.接下来,我们就用这种扩展机制开发一个简单的选项卡插件:
页面布局与样式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="/UploadFiles/2021-04-02/jquery.js">tab2.js文件
;(function ($) { $.fn.tabs = function (opt) { var def = { evType: "click" }; //定义了一个默认配置 var opts = $.extend({}, def, opt); var obj = $(this); $("ul li:first", obj).addClass("active"); obj.children("div").hide(); obj.children("div").eq(0).show(); $("ul li", obj).bind(opts.evType, function () { $(this).attr("class", "active").siblings("li").attr("class",""); var id = $(this).find("a").attr("href").substring(1); obj.children("div").hide(); $("#" + id, obj).show(); }); }; })(jQuery);1,一个自执行函数,把插件封装成模块,把jQuery对象传给形参$
2,第3行,定义一个默认配置,选项卡的触发类型,默认为点击事件
3,第4行,如果opt传参,就用opt的配置,否者就用第3行的默认配置,这行的作用就是为了在不改变插件源码的情况下,可以配置插件的表现形式
4,第7-9行,让选项卡第一个div显示,其余的都隐藏,让第一个tab加上class='active' 黄色高亮选中
5,第11-16行,点击对应的选项卡,让对应的div显示与隐藏
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
jquery,选项卡
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。