Saya telah menggunakan jQuery untuk sekian lama, dan saya sering menulis pemalam untuknya. Saya telah mencuba pelbagai cara untuk menulisnya, dan kini templat ini adalah kegemaran saya:
;(fungsi($) {
// berbilang pemalam boleh pergi ke sini
(function(pluginName) {
var lalai = {
warna: 'hitam',
testFor: function(div) {
kembali benar;
}
};
$.fn[pluginName] = fungsi(pilihan) {
pilihan = $.lanjutkan(benar, {}, lalai, pilihan);
Kembalikan this.each(function() {
var elem = ini,
$elem = $(elem);
// inilah keberanian plugin
Jika (options.testFor(elem)) {
$elem.css({
lebar sempadan: 1,
borderStyle: 'pepejal',
sempadanWarna: pilihan.warna
});
}
});
};
$.fn[pluginName].defaults = lalai;
})('sempadankan');
})(jQuery);
//Berikut ialah penggunaan
$('div').borderize();
$('div').borderize({warna: 'merah'});
Inilah sebab mengapa saya suka templat ini
1. Anda masih boleh mengakses pilihan lalai di dalam, walaupun ia ditindih (hanya diakses melalui atribut induk)
2. Anda boleh menukar nama pemalam dengan mengubah suai Nama pemalam. (Kaedah ini juga sangat berfaedah untuk pemampatan kod)
Point #1 sangat berkuasa Sebagai contoh, jika kita ingin mengatasi kaedah ini, tetapi masih mahu mengekalkan kaedah asal, kita boleh melihat contoh berikut:
$('.borderize').borderize({
TestFor: fungsi(elemen) {
var $elem = $(elem);
Jika (elem.is('.tidak aktif')) {
pulangan palsu;
} lain {
// memanggil fungsi "ibu bapa"
return $.fn.borderize.defaults.testFor.apply(this, arguments);
}
}
});
Kita juga boleh melakukan ini dengan sifat biasa seperti ini
var someVarThatMayBeSet = palsu;
/* kod ... */
$('.borderize').borderize({
warna: someVarThatMayBeSet ? 'merah' : $.fn.borderize.defaults.color
});
Rakan, anda juga akan menyukai templat pemalam jQuery ini, ia sangat fleksibel.