Mengintegrasikan Metode Publik dan Callback
Tambahkan metode publik ke plugin Anda untuk interaksi eksternal dan sertakan fungsi callback agar pengguna dapat mengaitkan kode ke peristiwa plugin tertentu.
Mengintegrasikan Metode Publik dan Callback adalah pelajaran jQuery Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar jQuery Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus jQuery Academy mencakup 3 pelajaran total.
Berinteraksi dengan Plugin Anda
Plugin yang hebat tidak hanya berdiri sendiri. Plugin tersebut memungkinkan pengguna berinteraksi dengannya setelah inisialisasi! Pelajaran ini mengajarkan cara menambahkan metode publik untuk kendali eksternal dan fungsi callback untuk reaksi khusus.
- Metode Publik: Fungsi yang dapat dipanggil pengguna pada instance plugin yang telah diinisialisasi.
- Callback: Fungsi yang berjalan saat peristiwa tertentu terjadi di dalam plugin.
Mengulas Kembali Dasar-Dasar Plugin
Ingatlah bahwa plugin jQuery sering dibungkus dalam Immediately Invoked Function Expression (IIFE) untuk mencegah pencemaran cakupan global. Struktur ini menyediakan tempat yang aman bagi logika dan variabel internal plugin Anda.
Kita akan mengembangkan pola yang sudah tidak asing ini.
(function($) {
$.fn.myPlugin = function(options) {
// Default settings
var settings = $.extend({}, $.fn.myPlugin.defaults, options);
return this.each(function() {
var $this = $(this); // The element the plugin is applied to
// Plugin logic goes here
console.log("Plugin initialized on: " + $this.attr('id'));
});
};
// Default options
$.fn.myPlugin.defaults = {
message: "Hello from plugin!"
};
})(jQuery);
// How to use (in HTML <div id="myElement"></div>):
// $('#myElement').myPlugin();Apa Itu Metode Publik
Metode publik adalah fungsi yang disediakan oleh plugin Anda dan dapat dipanggil dari luar cakupan internalnya, bahkan setelah plugin diinisialisasi pada sebuah elemen.
Anggaplah metode ini sebagai kendali jarak jauh untuk plugin Anda. Anda dapat memerintahkannya untuk melakukan hal-hal seperti "mengatur ulang", "memperbarui", atau "mendapatkan nilai".
Menerapkan Metode Publik
Untuk menambahkan metode publik, biasanya kita menyimpan data instance plugin (termasuk metodenya) langsung pada elemen DOM menggunakan metode .data() milik jQuery.
Mari kita membuat plugin "counter" sederhana dan menambahkan metode getValue.
(function($) {
$.fn.counterPlugin = function(options) {
var settings = $.extend({
initialValue: 0
}, options);
return this.each(function() {
var $this = $(this);
var value = settings.initialValue;
var methods = {
getValue: function() {
return value;
},
increment: function() {
value++;
$this.text(value); // Update display
},
init: function() {
$this.text(value); // Initial display
}
};
// Store methods on the element's data
$this.data('counterPlugin', methods);
methods.init(); // Initialize display
});
};
})(jQuery);
// HTML: <div id="myCounter"></div>
// Usage: $('#myCounter').counterPlugin();
// Later: $('#myCounter').data('counterPlugin').getValue();Memanggil Metode Publik
Setelah plugin diinisialisasi dan metodenya disimpan melalui .data(), Anda dapat mengakses dan memanggilnya secara langsung.
Kuncinya adalah mengambil instance yang tersimpan dari elemen terlebih dahulu, lalu memanggil metode pada instance tersebut.
// Assume counterPlugin from previous scene is loaded
// HTML: <div id="myCounter"></div>
$(document).ready(function() {
// Initialize the plugin
$('#myCounter').counterPlugin({ initialValue: 5 });
// Get the plugin instance
var counterInstance = $('#myCounter').data('counterPlugin');
// Call public methods
console.log("Current value: " + counterInstance.getValue());
counterInstance.increment();
console.log("After increment: " + counterInstance.getValue());
});Apa Itu Callback
Fungsi callback adalah fungsi yang Anda teruskan ke plugin, lalu dijalankan oleh plugin pada tahap tertentu dalam siklus hidupnya atau saat peristiwa internal tertentu terjadi.
Callback memungkinkan pengguna "mengaitkan diri" ke perilaku plugin dan menambahkan logika khusus mereka sendiri tanpa mengubah kode sumber plugin.
- Anggaplah callback seperti pendengar peristiwa untuk tindakan internal plugin.
- Callback yang umum:
onInit,onChange,onComplete.
Menerapkan Callback
Untuk menerapkan callback, tentukan callback tersebut terlebih dahulu dalam opsi bawaan plugin Anda. Kemudian, di dalam plugin, cukup panggil fungsi ini saat peristiwa yang relevan terjadi dan teruskan data yang diperlukan.
Mari kita memperluas plugin counter dengan callback onChange.
(function($) {
$.fn.counterPlugin = function(options) {
var settings = $.extend({
initialValue: 0,
onChange: function(newValue) {} // Default empty callback
}, options);
return this.each(function() {
var $this = $(this);
var value = settings.initialValue;
var methods = {
getValue: function() {
return value;
},
increment: function() {
value++;
$this.text(value);
// Call the callback when value changes
settings.onChange.call($this[0], value);
},
init: function() {
$this.text(value);
}
};
$this.data('counterPlugin', methods);
methods.init();
});
};
})(jQuery);
// Usage: See next scene!Meneruskan Fungsi Callback
Pengguna meneruskan fungsi callback khusus mereka langsung di dalam objek opsi plugin saat inisialisasi. Fungsi ini kemudian dipanggil oleh plugin pada waktu yang sesuai.
Perhatikan penggunaan .call($this[0], value). Ini menetapkan this di dalam callback ke elemen DOM dan meneruskan nilai baru sebagai argumen.
// Assume counterPlugin with onChange callback is loaded
// HTML: <div id="myCounter"></div>
$(document).ready(function() {
$('#myCounter').counterPlugin({
initialValue: 10,
onChange: function(newValue) {
console.log("Counter changed to: " + newValue + " on element: " + this.id);
if (newValue % 2 === 0) {
$(this).css('color', 'blue');
} else {
$(this).css('color', 'red');
}
}
});
var counterInstance = $('#myCounter').data('counterPlugin');
counterInstance.increment(); // Triggers callback
counterInstance.increment(); // Triggers callback
});Beberapa Metode & Callback
Anda dapat menentukan beberapa metode publik dan beberapa callback berbeda untuk menangani berbagai peristiwa di dalam plugin. Dengan demikian, terciptalah komponen yang fleksibel dan tangguh.
- Metode publik memungkinkan pengguna memberikan perintah kepada plugin.
- Callback memungkinkan plugin memberi tahu kode pengguna tentang hal yang sedang terjadi.
(function($) {
$.fn.advancedCounter = function(options) {
var settings = $.extend({
initial: 0,
onIncrement: null, // New callback
onDecrement: null, // New callback
onReset: null // New callback
}, options);
return this.each(function() {
var $this = $(this);
var value = settings.initial;
var methods = {
getValue: function() { return value; },
increment: function() {
value++;
$this.text(value);
if ($.isFunction(settings.onIncrement)) {
settings.onIncrement.call($this[0], value);
}
},
decrement: function() {
value--;
$this.text(value);
if ($.isFunction(settings.onDecrement)) {
settings.onDecrement.call($this[0], value);
}
},
reset: function() {
value = settings.initial;
$this.text(value);
if ($.isFunction(settings.onReset)) {
settings.onReset.call($this[0], value);
}
},
init: function() { $this.text(value); }
};
$this.data('advancedCounter', methods);
methods.init();
});
};
})(jQuery);
// HTML: <div id="myAdvancedCounter"></div>
$(document).ready(function() {
$('#myAdvancedCounter').advancedCounter({
initial: 100,
onIncrement: function(v) { console.log("Inc: " + v); },
onReset: function(v) { console.log("Reset to: " + v); }
});
var inst = $('#myAdvancedCounter').data('advancedCounter');
inst.increment();
inst.reset();
});Kiat Metode Publik & Callback
Saat merancang antarmuka publik plugin Anda, ingatlah kiat-kiat berikut:
- Penamaan Konsisten: Gunakan nama yang jelas dan deskriptif untuk metode dan callback.
- Penanganan Kesalahan: Periksa apakah callback benar-benar merupakan fungsi sebelum memanggilnya (misalnya,
$.isFunction(settings.onComplete)). - Konteks: Gunakan
.call()atau.apply()untuk menetapkan konteksthisbagi callback, biasanya ke elemen tempat plugin diterapkan. - Argumen: Teruskan data yang relevan ke callback (misalnya, nilai baru atau objek peristiwa).
Kuis Interaksi Plugin
Perhatikan plugin jQuery yang diinisialisasi pada #myElement. Plugin tersebut memiliki metode publik bernama doSomething() dan callback onComplete.
Potongan kode mana yang dengan benar memanggil metode publik DAN meneruskan callback khusus saat inisialisasi?
Ringkasan & Langkah Berikutnya
Anda telah menguasai cara membuat plugin jQuery yang benar-benar interaktif dan fleksibel!
- Metode publik memungkinkan kode eksternal mengendalikan dan meminta informasi dari plugin setelah plugin diinisialisasi.
- Callback menyediakan kait bagi pengguna untuk menyisipkan logika khusus sebagai respons terhadap peristiwa internal plugin.
Teknik-teknik ini sangat penting untuk membangun plugin jQuery yang tangguh, dapat digunakan ulang, dan mudah digunakan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengintegrasikan Metode Publik dan Callback” gratis?
Ya — teks lengkap “Mengintegrasikan Metode Publik dan Callback” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus jQuery Academy, upgrade ke CoddyKit PRO. Kursus jQuery Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Mengintegrasikan Metode Publik dan Callback”?
Tambahkan metode publik ke plugin Anda untuk interaksi eksternal dan sertakan fungsi callback agar pengguna dapat mengaitkan kode ke peristiwa plugin tertentu. Kamu berlatih jQuery Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai jQuery Academy?
Tidak diperlukan pengalaman sebelumnya. jQuery Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.
Berapa lama pelajaran “Mengintegrasikan Metode Publik dan Callback” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran jQuery Academy ini?
Ya. Setiap pelajaran jQuery Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pola Desain Plugin dan Ruang Lingkup
- Membangun Plugin yang Dapat Dikonfigurasi dan Digunakan Ulang
- Mengintegrasikan Metode Publik dan Callback