Kongsi nota kajian jQuery plug-in_jquery

WBOY
Lepaskan: 2016-05-16 15:20:08
asal
1117 orang telah melayarinya

Plugin juga dipanggil jQuery Extension, iaitu program yang ditulis mengikut antara muka aplikasi standard tertentu. Pada masa ini terdapat lebih daripada beribu-ribu pemalam jQuery, yang ditulis, disahkan dan diperbaiki oleh pembangun dari seluruh dunia. Untuk pembangun jQuery, menggunakan pemalam ini secara langsung akan menstabilkan seni bina sistem dengan cepat dan menjimatkan kos projek.

1. Gambaran Keseluruhan Pemalam

Pemalam adalah berdasarkan kod teras jQuery untuk menulis aplikasi yang menggabungkan spesifikasi tertentu. Dalam erti kata lain, pemalam juga adalah kod jQuery, yang boleh dimasukkan melalui pengenalan fail js.

Terdapat banyak jenis pemalam, yang boleh dibahagikan secara kasar kepada: kelas UI, kelas borang dan pengesahan, kelas input, kelas kesan khas, kelas Ajax, kelas gelongsor, kelas grafik dan imej, kelas navigasi, alat komprehensif kelas, kelas animasi, dll.

Memperkenalkan pemalam memerlukan langkah tertentu, yang pada asasnya adalah seperti berikut:

  • 1. Fail jquery.js mesti diimport dahulu, dan sebelum semua pemalam
  • 2. Perkenalkan pemalam;
  • 3. Perkenalkan peranti pemalam, seperti kulit, pek bahasa Cina, dsb.

  • Sebagai contoh, pemalam pengesahan borang yang paling biasa digunakan: sahkan, sebagai tambahan kepada fail pemalam paling asas jquery.validate.min.js, terdapat juga messages_zh.js dan pakej bahasa lain dari pelbagai negara untuk anda untuk menggunakan.
Cara menggunakan pemalam ini tidak akan diterangkan di sini Anda boleh melihat video di MOOC.com tentang pemalam jQuery - Pemalam Pengesahan, yang menerangkan secara terperinci pelbagai item konfigurasi dan sambungan pemalam ini. dalam.

Secara analogi, untuk pemalam yang sangat baik, dokumentasi terperinci adalah penting Membaca dokumentasi secara terperinci dan mengujinya secara setempat akan membolehkan anda mula menggunakan pelbagai pemalam dengan cepat.

Terdapat juga pelbagai pemalam yang ditulis oleh orang lain yang boleh anda gunakan: seperti pemalam untuk mengurus kuki – kuki, dsb.

Pemalam boleh didapati dalam modul pemalam di tapak web rasmi jQuery. Pendaftaran Pemalam jQuery

2. Pemalam tersuai

Terdahulu kami menggunakan pemalam yang baik yang disediakan oleh orang lain, yang sangat mudah digunakan. Jika anda tidak menemui pemalam yang anda berpuas hati dengannya di pasaran, dan ingin membungkus pemalam sendiri untuk digunakan oleh orang lain. Kemudian anda perlu menulis pemalam jQuery sendiri.

1. Jenis pemalam

Mengikut klasifikasi berfungsi, borang pemalam boleh dibahagikan kepada tiga kategori berikut:

    Pemalam yang merangkum kaedah objek; (iaitu, objek jQuery berdasarkan elemen DOM tertentu, disetempatkan dan paling banyak digunakan)
  • Pemalam yang merangkumi fungsi global; (pengkapsulan global)
  • Pemalam pemilih. (Serupa dengan .find(), contohnya: color(red) untuk memilih semua elemen merah)
2. Perkara asas pemalam

Terutamanya digunakan untuk menyelesaikan pelbagai konflik, ralat dan masalah lain yang disebabkan oleh pemalam, termasuk yang berikut:

    Adalah disyorkan untuk menggunakan jQuery.[nama pemalam].js untuk nama pemalam untuk mengelakkan konflik dengan fail js lain atau perpustakaan lain (anda boleh menggunakan alert( $.[plug-in nama]) untuk mengesahkan sama ada kaedah global wujud );
  • Objek tempatan dilampirkan pada objek jQuery.fn, dan fungsi global dilampirkan pada objek jQuery itu sendiri (anda boleh menggunakan alert( $(selector).[plugin name]) untuk mengesahkan sama ada kaedah tempatan wujud);
  • Di dalam pemalam, ini menghala ke objek tempatan semasa (objek jQuery diperoleh melalui pemilih
  • Anda boleh menggunakan ini.masing-masing untuk merentasi semua elemen
  • Semua kaedah atau pemalam mesti diakhiri dengan koma bertitik untuk mengelakkan masalah (untuk lebih selamat, anda boleh menambah koma bertitik di bahagian kepala pemalam
  • ).
  • Pemalam harus mengembalikan objek jQuery untuk memastikan operasi boleh berantai;
  • Elakkan menggunakan $ di dalam pemalam Jika anda ingin menggunakannya, gunakan penutupan untuk memasukkan jQuery, supaya pemalam akan terus menggunakan $ sebagai alias untuk jQuery.

3 Tulis pemalam
;(function($){//这里将$符作为匿名函数的形参
/*在此处编写代码,可使用$作为jQuery的缩写别名*/
})(jQuery);//这里将jQuery作为实参传递给匿名函数了
Salin selepas log masuk

Andaikan keperluan pemalam kami adalah untuk melaksanakan menu lungsur turun, memaparkan senarai lungsur turun yang sepadan apabila elemen dialih masuk dan menarik balik apabila elemen dialih keluar. Dan anda boleh menetapkan warna teks apabila ia dikembangkan. Menurut konvensyen, apabila kita menulis pemalam, kita boleh mempunyai beberapa kekangan pada struktur html. Sekarang andaikan halaman kami mempunyai struktur HTML berikut:

在这里,我们就对我们的插件实现效果有了第一个要求,必须在 对于需要hover展现的元素 内部下面建立 ul 列表,且 className 必须为 nav 。(插件内部都是根据该条件来做文章)

下面就可以开始编写我们的插件了。保存为 jQuery.nav.js ,(符合上面所说的要求,默认已经导入)

;(function($){
 $.extend({ //插件定义在全局方法上
  "nav" : function (color){//传参,这里只是抛砖引玉,在您编写的时候,参数选项可以更加丰富,例如传入json对象等等
   $('.nav').css({//对展开的下拉列表设置样式,此处在下面进行详细说明
    "list-style" : "none",
    "margin" : 0,
    "padding" : 0,
    "display" : "none",
    "color":color//由用户控制hover时,展现出来列表的文字颜色
   });
   $('.nav').parent().hover(//这里用到了.nav的父节点(就是hover到的元素)
    //因为我们只能在插件要求的范围内进行设定,若是使用了外部的选择器,就违背了这个原则
    function (){
     $(this).find(".nav").stop().slideDown("normal");//注意我们在这里使用了jquery的动画方法
    },function (){
     $(this).find(".nav").stop().slideUp("normal");//注意stop()的使用,不然会有类似手风琴效果的出现,但那并不是我们需要的
    });
  }
 });
})(jQuery);
Salin selepas log masuk

注意:这里使用css方法只是为了方便,在真实插件编写过程中,若存在如此大量的css样式编写时,推荐在外部定义css样式,例如可改写为:

插件依赖的css,需和插件一起导入html中

.hover{/*插件必须样式*/
 list-style: none;
 margin:0;
 padding: 0;
 display: none;
}
Salin selepas log masuk

在插件内部修改。

$('.nav').addClass("hover");//将CSS与jQuery分离开来
$('.nav').css("color",color);//存在用户设置时启用,不存在就不用了(进行判断)
Salin selepas log masuk

刚刚说的都是插件的js文件,最后要起到效果,别忘了页面的js中加上那么一句话(当前插件定义在全局方法上)

$(function (){
 $.nav("#999");//调用插件实现的全局方法,并且设置其展现背景颜色为#999。
});
Salin selepas log masuk

就这样,我们的全局插件就编写,而且调用完成了,在你的页面刷新看看,是不是已经有了效果呢?

但是,因为我们的方法定义在全局上,现在只要页面中出现了我们插件所规定的结构,就会存在hover展现效果,但是有时我们往往想要的不是这样,我们希望它在局部,在我指定的元素调用。所以我们需要对其进行一些改造,让其变成局部方法,其实也很简单:

;(function($){
 $.fn.extend({//定义为局部方法
  "nav" : function (color){
   $(this).find('.nav').addClass('hover');//上面已经说过了,此时this指向调用该方法的元素
   $(this).find('.nav').css("color",color);//在当前元素下,增加了一次find筛选,实现在对应的元素中执行。
   $(this).find('.nav').parent().hover(
    function (){
     $(this).find(".nav").stop().slideDown("normal");
    },function (){
     $(this).find(".nav").stop().slideUp("normal");
    });
   return this;//返回当前的对象
  }
 });
})(jQuery);
Salin selepas log masuk

我们去刷新一下浏览器。你会发现,咦,怎么没效果? 当然因为原来的代码是直接在全局调用的,现在变成局部方法了,显然就不能这样做了,需要做一点改变:

我这里就不贴html代码了,但是希望您在实践时能把上面的html代码在其下复制几份,以达到思考其实现的效果

$(function (){//这里的eq(0)代表只对第一份起到效果,复制后的没有效果。
 //(你可以把上面的find筛选删除之后再试试,您会发现,他又对余下的几份起效果了)
 $(".list").eq(0).nav("red");//调用局部方法
});
Salin selepas log masuk

现在回过头再把我们写的插件代码对应上面写的 插件编写的要点 ,思考一下,我们还有哪些没有做到?就会发现,基本已经能对应上了。现在我们就完成了一个下拉菜单的插件。

其实编写插件并不难,最主要的是在我们编写插件的时候,一定要时刻注意这样的要点,每一个细节都遵循在大家实践过程中总结出来的最佳实现,才能自定义实现一个良好的插件。

代码首先是写个人看的,再然后才是给机器看的。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!