ffCCBot/2.0 (http://commoncrawl.org/faq/)
Update: 16-08-2015

Cara Membuat jQuery Plugin

Pada kesempatan kali ini kita akan membahas step by step / langkah demi langkah cara membuat jQuery plugin. Berdasrkan pengalaman saya, plugin dalam jQuery ini dibagi menjadi dua, yaitu plugin yang berdiri sendiri misal: plugin dialog atau splash notice dan plugin yang diattach ke element tertentu seperti lightbox, carousel, dll. Kita bahas terlebih dahulu plugin yang diattach ke element tertentu dengan cotoh ketika kita klik button tertentu, warna background akan berubah:

Demo Download File

1. Pertama kita buat kode awal

;(function($)
{

}(jQuery)

Tanda ; berfungsi untuk menutup kode diatasnya yang barang kali masih terbuka, kemudian ( function(){} )() adalah IIFE (silakan di google), dimana fungsi akan langsung dijalankan ketika di load, Sedangkan tanda $ merupakan simbol dari jQuery yang kita definisikan di bawahnya.

2. Buat Property ke Objek jQuery

;(function($)
{
	$.simplePlugin = function(element, options)
	{

	}

}(jQuery)

Silakan pilih nama property yang unik, untuk menghindari bentrok dengan property lainnya, pada contoh kali kita beri nama simplePlugin. Property ini akan kita gunakan pada saat memanggil plugin. Perintah $.simplePlugin berarti kita menambahkan property pada jQuery objek dengan value berupa objek fungsi, kemudian function(element, options) berarti kita membuat fungsi dengan dua argumen yaitu element yang berarti element dimana plugin akan kita pasangkan dan options yang merupakan parameter dari user

2. Definisikan variabel plugin dan opsi default

;(function($)
{
	$.simplePlugin = function(element, options)
	{
		var	plugin = this,
			$elm = $(element),
			defaults = {
				background: 'red',
				alertTitle: false
			}
	}

}(jQuery)

Opsi default berupa objek dengan berbagai parameter, misal dalam contoh ini warna background merah dan alertTitle bernilai false (apakah akan memunculkan alert ketika di klik), selanjutnya daripada menggunakan this, untuk memudahkan kita buat variabel plugin yang merujuk pada objek plugin yang kita buat, selanjutnya kita simpan objek jQuery dari element kedalam variabel $elm.

3. Buat fungsi pada objek plugin

;(function($)
{
	$.simplePlugin = function(element, options)
	{	
		var	plugin = this,
			$elm = $(element),
			defaults = {
				background: 'red',
				alert: true
			}
	
		var _init = function()
		{
			plugin.options = $.extend( {}, defaults, options );
			$elm.click(function(){
				$(this).parent().css('background-color', plugin.options.background);
				if (plugin.options.alertTitle)
					alert($elm.attr('title'));
				return false;
			})
		}
		_init();
	}

})(jQuery)

Kita buat fungsi yang disimpan dalam variabel _init (tanda underscore didepannya untuk memudahkan penamaan saja bahwa variabel tersebut dersifat private), maksud init ini adalah kependekan dari initialization yang berarti awalan, fungsi ini akan kita jalankan pertama kali ketika objek dibuat. Kode plugin.options = $.extend( {}, defaults, options ); berarti kita menambahkan property pada plugin kita dengan nama options yang berisi objek gabungan antara opsi defaults yang telah kita tentukan sebelumnya dengan opsi yang diberikan user (dengan method jQuery extend kita dapat gabungkan dua objek dan disimpan dalam objek baru, baca jQuery.extend()).

Selanjutnya kita beri event click ke element, dimana ketika di klik, background parent element akan berubah sesuai opsi yang telah ditentukan, jika opsi alertTitle bernilai true, tampilkan alert dengan kata-kata sesuai dengan atribut title pada element.

Terakhir kita panggil fungsi init dengan kode _init();

4. Buat Handle Untuk Mengattach Plugin ke Element

;(function($)
{
	$.simplePlugin = function(element, options)
	{	
		var	plugin = this,
			$elm = $(element),
			defaults = {
				background: 'red',
				alert: true
			}
	
		var _init = function()
		{
			plugin.options = $.extend( {}, defaults, options );
			$elm.click(function(){
				console.log('gg');
				$(this).parent().css('background-color', plugin.options.background);
			})
		}
		_init();
	}
	
	$.fn.changeBg = function(options) 
	{
		return this.each(function() 
		{
			if ($(this).data('changeBg') == undefined) {
				var plugin = new $.simplePlugin(this, options);
				$(this).data('changeBg', plugin);
			}
		});
	}

})(jQuery)

Kita beri nama plugin sesuai keinginan kita, namun usahakan yang unik, sehingga tidak bentrok dengan yang lain. pada contoh kali ini kita beri nama changeBg. Pertama kita cek apakah plugin telah disimpan ke masing-masing element if ($(this).data('changeBg') == undefined) , jika belum ada kita buat objek baru var plugin = new $.simplePlugin(this, options); dan kita simpan ke data di masing masing objek element $(this).data('changeBg', plugin);

5. Panggil Plugin
Contoh untuk memanggil plugin yang telah kita buat

$(document).ready(function()
{
	$('#yellow').changeBg({background: 'yellow'});
	$('#blue').changeBg({background: 'blue', alertTitle: true});
	$('#orange').changeBg({background: 'orange'});
})

Demo:

Download File

Recomended Post

Silakan tinggalkan komentar

Like Us

Dapatkan update artikel terbaru via E-Mail
  1. Tutorial PHP Form II: Menampilkan Hasil Input Form HTML dengan PHP
  2. Tutorial PHP Form I: Menghubungkan Form HTML dengan PHP
  3. Menampilkan Data Dari Beberapa Tabel MySQL – JOIN Pada MYSQL
  4. Memahami dan Menampilkan Tanggal dan Waktu Pada PHP
  5. Menghitung Selisih Waktu Dengan PHP – Cara Termudah
  6. Memahami Fungsi Date Pada PHP
  7. Memahami Fungsi Time, Strtotime, dan Mktime Pada PHP – Memanipulasi Waktu
  8. Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHP
  9. Setting ODBC MySQL Untuk Gammu
  10. Cara Install dan Menggunakan Gammu di Windows