Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Panggilan Fungsi Ganti pada Acara Klik?

Bagaimana untuk Panggilan Fungsi Ganti pada Acara Klik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 16:31:02396semak imbas

How to Alternate Function Calls on Click Events?

Panggilan Fungsi Bergantian dengan Peristiwa Klik

Soalan:

Bagaimana saya boleh melaksanakan fungsi yang berbeza apabila elemen diklik, berselang-seli antara mereka dengan setiap klik berturut-turut?

Jawapan:

jQuery menawarkan versi ganti kaedah .toggle() yang direka khusus untuk tujuan ini, walaupun sejak itu telah ditamatkan. Terdapat pendekatan alternatif, seperti mencipta pemalam tersuai yang menyediakan kefungsian yang diingini.

Menggunakan Kaedah .toggle() Dihentikan:

$('#element').toggle(function() {
  // Function 1
}, function() {
  // Function 2
});

Pemalam Tersuai:

(function($) {
  $.fn.clickToggle = function(func1, func2) {
    var funcs = [func1, func2];
    this.data('toggleclicked', 0);
    this.click(function() {
      var data = $(this).data();
      var tc = data.toggleclicked;
      $.proxy(funcs[tc], this)();
      data.toggleclicked = (tc + 1) % 2;
    });
    return this;
  };
}(jQuery));

$('#element').clickToggle(function() {
  // Function 1
}, function() {
  // Function 2
});

Nota:

  • Pemalam tersuai boleh digunakan untuk sebarang acara, bukan hanya klik.
  • Ia menerima bilangan fungsi yang sewenang-wenangnya untuk dilaksanakan secara bergilir-gilir.
  • Kaedah .toggle() yang tidak digunakan boleh menyebabkan isu prestasi dalam senario yang rumit.

Atas ialah kandungan terperinci Bagaimana untuk Panggilan Fungsi Ganti pada Acara Klik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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