Rumah hujung hadapan web tutorial js Analisis penggunaan acara tersuai dalam kemahiran JavaScript_javascript

Analisis penggunaan acara tersuai dalam kemahiran JavaScript_javascript

May 16, 2016 pm 04:25 PM
javascript peristiwa penggunaan Sesuaikan

Contoh dalam artikel ini menerangkan penggunaan acara tersuai dalam JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Dalam pembangunan bahagian hadapan web, ramai orang mungkin tidak menggunakan acara tersuai bagi js, tetapi jika anda melakukan projek yang agak besar, terutamanya apabila berbilang orang membangun secara kolaboratif, acara tersuai adalah sangat penting. Jadi, apakah acara tersuai dalam js? Mari lihat contoh dahulu:
Pembangun bahagian hadapan A merangkum fungsi:

Salin kod Kod adalah seperti berikut:
function move(){
alert(a); //Ini mewakili N baris kod
}

Selepas beberapa ketika, pembangun bahagian hadapan B akan memperkayakan fungsi ini berdasarkan A, jadi dia akan menulis seperti ini:
Salin kod Kod adalah seperti berikut:
function move(){
alert(a); //Ini mewakili N baris kod
alert(b); //Ini mewakili N baris kod
}

Adakah anda menemui masalah? B harus memberi perhatian kepada isu penamaan dan konflik dengan pembolehubah, fungsi, dll. Selepas beberapa ketika, pembangun bahagian hadapan C juga akan memperkayakan fungsi ini, jadi:
Salin kod Kod adalah seperti berikut:
function move(){
alert(a); //Ini mewakili N baris kod
alert(b); //Ini mewakili N baris kod
alert(c); //Ini mewakili N baris kod
}

Ia akan menjadi sangat mengecewakan pada masa ini, dan saya pasti ia tidak akan mudah untuk menulis kod dalam C. Cara untuk menyelesaikan masalah ini adalah dengan menggunakan acara tersuai Kami tahu bahawa acara yang sama boleh ditambahkan pada elemen tanpa menjejaskan satu sama lain, seperti:
Salin kod Kod adalah seperti berikut:
window.addEventListener('click',function(){
makluman(1);
} ,salah);
window.addEventListener('klik',function(){
makluman(2);
} ,salah);

Apabila mengklik pada halaman, kedua-dua 1 dan 2 akan muncul, maka kita boleh menggunakan kaedah ini untuk menentukan fungsi kita:
Salin kod Kod adalah seperti berikut:
window.addEventListener('move',function(){
makluman(3);
} ,salah);
window.addEventListener('move',function(){
makluman(4);
} ,salah);

Dengan cara ini, apabila kita melaksanakan move();, 3 dan 4 akan muncul Pergerakan di sini ialah acara tersuai, yang sebenarnya merupakan fungsi

Mari lihat cara menghantar parameter kepada pengendali acara:

Salin kod Kod adalah seperti berikut:
//Enkapsulasi fungsi dengan parameter ke dalam fungsi tanpa parameter
function createFunction(obj, strFunc) {
var args = []; //Define args untuk menyimpan parameter yang dihantar kepada pengendali acara
Jika (!obj) obj = window; //Jika ia adalah fungsi global, obj=window
//Dapatkan parameter diserahkan kepada pengendali acara
untuk (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Gunakan fungsi tanpa parameter untuk merangkum panggilan pengendali acara
Kembalikan fungsi() {
          obj[strFunc].apply(obj, args); // Hantar parameter kepada pengendali acara yang ditentukan
}
}
kelas fungsi1() {
}
kelas1.prototaip = {
tunjukkan: function() {
This.onShow();
},
onShow: function() { }
}
fungsi objOnShow(Nama pengguna) {
alert("hello," nama pengguna);
}
ujian fungsi() {
var obj = new class1();
var userName = "ujian";
​ obj.onShow = createFunction(null, "objOnShow", nama pengguna);
Obj.show();
}

"Oleh kerana mekanisme acara hanya menghantar nama fungsi tanpa sebarang maklumat parameter, parameter tidak boleh dihantar kemudian." Fikirkan tentang cara memasukkan parameter, tetapi pertimbangkan cara membina pengendali acara tanpa parameter Program ini dibuat berdasarkan pengendali acara dengan parameter dan merupakan pakej luar "Program" di sini ialah fungsi createFunction fungsi guna untuk merangkum fungsi dengan parameter ke dalam fungsi tanpa parameter. Akhir sekali, mari kita lihat cara melaksanakan berbilang pengikatan acara tersuai:

Salin kod Kod adalah seperti berikut:
// Jadikan acara tersuai menyokong berbilang pengikatan
//Merangkum fungsi dengan parameter ke dalam fungsi tanpa parameter
function createFunction(obj, strFunc) {
var args = []; //Define args untuk menyimpan parameter yang dihantar kepada pengendali acara
Jika (!obj) obj = window; //Jika ia adalah fungsi global, obj=window
//Dapatkan parameter diserahkan kepada pengendali acara
untuk (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Gunakan fungsi tanpa parameter untuk merangkum panggilan pengendali acara
Kembalikan fungsi() {
          obj[strFunc].apply(obj, args); // Hantar parameter kepada pengendali acara yang ditentukan
}
}
kelas fungsi1() {
}
kelas1.prototaip = {
tunjukkan: function() {
          jika (ini.onShow) {
untuk (var i = 0; i < this.onShow.length; i ) {
This.onShow[i]();
            }
}
},
attachOnShow: function(_eHandler) {
Jika (!this.onShow) { this.onShow = []; This.onShow.push(_eHandler);
}
}
fungsi objOnShow(Nama pengguna) {
alert("hello," nama pengguna);
}
fungsi objOnShow2(testName) {
alert("show:" testName);
}
ujian fungsi() {
var obj = new class1();
var userName = "nama anda";
Obj.attachOnShow(createFunction(null, "objOnShow", nama pengguna));
Obj.attachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show();
}
Kami melihat bahawa idea asas kaedah attachOnShow adalah untuk menolak tatasusunan Malah, kami juga boleh mengalih keluar fungsi pemprosesan acara selepas pelaksanaan acara selesai dilaksanakan secara berasingan di bawah:

Salin kod Kod adalah seperti berikut:
//Funktionen mit Parametern in Funktionen ohne Parameter kapseln
Funktion createFunction(obj, strFunc) {
var args = []; //Argumente definieren, um die an den Event-Handler
übergebenen Parameter zu speichern If (!obj) obj = window; //Wenn es eine globale Funktion ist, obj=window; //Die an den Event-Handler
übergebenen Parameter abrufen for (var i = 2; i < arguments.length; i ) args.push(arguments[i]);
//Verwenden Sie eine Funktion ohne Parameter, um den Aufruf des Ereignishandlers
zu kapseln Rückgabefunktion() {
          obj[strFunc].apply(obj, args); // Parameter an den angegebenen Event-Handler übergeben
}
}
Funktion class1() {
}
class1.prototype = {
show: function() {
          if (this.onShow) {
for (var i = 0; i < this.onShow.length; i ) {
This.onShow[i]();
            }
}
},
attachmentOnShow: function(_eHandler) { // Ereignis anhängen
If (!this.onShow) { this.onShow = []; This.onShow.push(_eHandler);
},
detachOnShow: function(_eHandler) { // Ereignis entfernen
If (!this.onShow) { this.onShow = []; This.onShow.pop(_eHandler);
}
}

Funktion objOnShow(userName) {
alarm("Hallo", Benutzername); }

Funktion objOnShow2(testName) {
alarm("show:" testName);
}
Funktionstest() {
var obj = new class1();
var userName = "Ihr Name";
Obj.attachOnShow(createFunction(null, "objOnShow", userName));
Obj.attachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show();
obj.detachOnShow(createFunction(null, "objOnShow", userName));
Obj.show(); // Eines entfernen und das verbleibende anzeigen
obj.detachOnShow(createFunction(null, "objOnShow2", "test message"));
Obj.show(); // Beide entfernen und keines anzeigen
}


Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara cepat menyediakan avatar tersuai dalam Netflix Cara cepat menyediakan avatar tersuai dalam Netflix Feb 19, 2024 pm 06:33 PM

Avatar di Netflix ialah representasi visual identiti penstriman anda. Pengguna boleh melangkaui avatar lalai untuk menyatakan keperibadian mereka. Teruskan membaca artikel ini untuk mengetahui cara menetapkan gambar profil tersuai dalam apl Netflix. Cara cepat menetapkan avatar tersuai dalam Netflix Dalam Netflix, tiada ciri terbina dalam untuk menetapkan gambar profil. Walau bagaimanapun, anda boleh melakukan ini dengan memasang sambungan Netflix pada penyemak imbas anda. Mula-mula, pasang gambar profil tersuai untuk sambungan Netflix pada penyemak imbas anda. Anda boleh membelinya di kedai Chrome. Selepas memasang sambungan, buka Netflix pada penyemak imbas anda dan log masuk ke akaun anda. Navigasi ke profil anda di penjuru kanan sebelah atas dan klik

Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse Jan 28, 2024 am 10:01 AM

Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse? Sebagai pembangun, menguasai kekunci pintasan ialah salah satu kunci untuk meningkatkan kecekapan semasa pengekodan dalam Eclipse. Sebagai persekitaran pembangunan bersepadu yang berkuasa, Eclipse bukan sahaja menyediakan banyak kekunci pintasan lalai, tetapi juga membenarkan pengguna untuk menyesuaikannya mengikut keutamaan mereka sendiri. Artikel ini akan memperkenalkan cara untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse dan memberikan contoh kod khusus. Buka Eclipse First, buka Eclipse dan masukkan

Menganalisis penggunaan dan klasifikasi ulasan JSP Menganalisis penggunaan dan klasifikasi ulasan JSP Feb 01, 2024 am 08:01 AM

Klasifikasi dan Analisis Penggunaan Komen JSP Komen JSP terbahagi kepada dua jenis: komen satu baris: berakhir dengan, hanya satu baris kod boleh diulas. Komen berbilang baris: bermula dengan /* dan berakhir dengan */, anda boleh mengulas berbilang baris kod. Contoh ulasan satu baris Contoh ulasan berbilang baris/**Ini ialah ulasan berbilang baris*Boleh mengulas pada berbilang baris kod*/Penggunaan ulasan JSP Komen JSP boleh digunakan untuk mengulas kod JSP agar lebih mudah dibaca

Proses pengendalian susun atur skrin tersuai edius Proses pengendalian susun atur skrin tersuai edius Mar 27, 2024 pm 06:50 PM

1. Gambar di bawah ialah susun atur skrin lalai bagi edius Tataletak tetingkap EDIUS lalai adalah susun atur mendatar Oleh itu, dalam persekitaran monitor tunggal, banyak tetingkap bertindih dan tetingkap pratonton berada dalam mod tetingkap tunggal. 2. Anda boleh mendayakan [Dual Window Mode] melalui bar menu [View] untuk menjadikan tetingkap pratonton memaparkan tetingkap main balik dan tetingkap rakaman pada masa yang sama. 3. Anda boleh memulihkan reka letak skrin lalai melalui [Lihat bar menu>Reka Letak Tetingkap>Umum]. Selain itu, anda juga boleh menyesuaikan reka letak yang sesuai dengan anda dan menyimpannya sebagai susun atur skrin yang biasa digunakan: seret tetingkap ke susun atur yang sesuai dengan anda, kemudian klik [Lihat > ​​Reka Letak Tetingkap > Simpan Reka Letak Semasa > Baharu], dan dalam pop timbul [Save Current Layout] Layout] masukkan nama susun atur dalam tetingkap kecil dan klik OK

Penggunaan fungsi WPSdatedif Penggunaan fungsi WPSdatedif Feb 20, 2024 pm 10:27 PM

WPS ialah suite perisian pejabat yang biasa digunakan, dan fungsi jadual WPS digunakan secara meluas untuk pemprosesan dan pengiraan data. Dalam jadual WPS, terdapat fungsi yang sangat berguna, fungsi DATEDIF, yang digunakan untuk mengira perbezaan masa antara dua tarikh. Fungsi DATEDIF ialah singkatan daripada perkataan Inggeris DateDifference Sintaksnya adalah seperti berikut: DATEDIF(start_date,end_date,unit) dengan start_date mewakili tarikh mula.

Cara menggunakan fungsi keluar dalam bahasa C dengan betul Cara menggunakan fungsi keluar dalam bahasa C dengan betul Feb 18, 2024 pm 03:40 PM

Cara menggunakan fungsi keluar dalam bahasa C memerlukan contoh kod khusus Dalam bahasa C, kita selalunya perlu menamatkan pelaksanaan program pada awal program, atau keluar dari program dalam keadaan tertentu. Bahasa C menyediakan fungsi exit() untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan penggunaan fungsi exit() dan memberikan contoh kod yang sepadan. Fungsi exit() ialah fungsi perpustakaan standard dalam bahasa C dan disertakan dalam fail pengepala. Fungsinya adalah untuk menamatkan pelaksanaan program, dan boleh mengambil integer

Bagaimana untuk menyesuaikan paksi-x dan paksi-y dalam excel? (Bagaimana untuk menyesuaikan skala paksi excel) Bagaimana untuk menyesuaikan paksi-x dan paksi-y dalam excel? (Bagaimana untuk menyesuaikan skala paksi excel) Mar 14, 2024 pm 02:10 PM

Dalam jadual excel, kadangkala anda mungkin perlu memasukkan paksi koordinat untuk melihat perubahan arah aliran data dengan lebih intuitif. Sesetengah rakan masih tidak tahu cara memasukkan paksi koordinat dalam jadual Seterusnya, saya akan berkongsi dengan anda cara menyesuaikan skala paksi koordinat dalam Excel. Kaedah pemasukan paksi koordinat: 1. Dalam antara muka excel, pilih data. 2. Dalam antara muka sisipan, klik untuk memasukkan carta lajur atau carta bar. 3. Dalam antara muka yang dikembangkan, pilih jenis grafik. 4. Dalam antara muka klik kanan jadual, klik Pilih Data. 5. Dalam antara muka yang diperluaskan, anda boleh menyesuaikannya.

Penerangan terperinci dan pengenalan penggunaan fungsi MySQL ISNULL Penerangan terperinci dan pengenalan penggunaan fungsi MySQL ISNULL Mar 01, 2024 pm 05:24 PM

Fungsi ISNULL() dalam MySQL ialah fungsi yang digunakan untuk menentukan sama ada ungkapan atau lajur yang ditentukan adalah NULL. Ia mengembalikan nilai Boolean, 1 jika ungkapan itu NULL, 0 sebaliknya. Fungsi ISNULL() boleh digunakan dalam pernyataan SELECT atau untuk pertimbangan bersyarat dalam klausa WHERE. 1. Sintaks asas fungsi ISNULL(): ISNULL(ungkapan) di mana ungkapan ialah ungkapan untuk menentukan sama ada ia NULL atau

See all articles