Saya memiliki skrip di JS:

<script>
  $(document).ready(function () {
   $('#new_logo_box').click(function (event) {
    if (this.checked) {
      $('#basic_info').slideDown(400); }
    else {
      $('#basic_info').slideUp(400);}
    });                                        
   });
</script>

Sekarang saya ingin memeriksa lebih dari satu input dengan operator logika alternatif. Bagaimana saya harus melakukannya? Saya mencoba dengan:

<script>
      $(document).ready(function () {
       $('#new_logo_box').click(function (event) ||
       $('#renew_logo_box').click(function (event) {
        if (this.checked) {
          $('#basic_info').slideDown(400); }
        else {
          $('#basic_info').slideUp(400);}
        });                                        
       });
</script>

Tapi ini tidak berhasil...

0
Damian 20 Agustus 2017, 04:34

2 jawaban

Jawaban Terbaik

Anda dapat memilih setiap elemen secara terpisah dan menggunakan add untuk menambahkan event listener ke keduanya :

var newLogoBox = $('#new_logo_box');
var renewLogoBox = $('#renew_logo_box');

newLogoBox.add(renewLogoBox).on('change', function () {
    if (newLogoBox.prop('checked') || renewLogoBox.prop('checked')) {
        $('#basic_info').slideDown(400);
    } else {
        $('#basic_info').slideUp(400);
    }
});
0
Ry- 20 Agustus 2017, 01:49

Anda bisa membuat daftar semua item yang ingin Anda terapkan pengendali acara dalam satu pemilih seperti ini:

  $(document).ready(function () {
   $('#new_logo_box, #renew_logo_box').click(function (event){
    if (this.checked) 
      $('#basic_info').slideDown(400);         
    else 
      $('#basic_info').slideUp(400);
   });
  });

Dengan menggunakan ini, logika Anda akan dieksekusi ketika salah satu item yang terdaftar diklik.

Untuk mencocokkan kebutuhan Anda untuk menyembunyikan info dasar hanya jika tidak ada yang dicentang, Anda dapat menggunakan sesuatu seperti ini:

  $(document).ready(function () {
   var counter = 0;
   $('#new_logo_box, #renew_logo_box').click(function (event){
    if (this.checked) 
      counter++;
    else 
      counter--;

    if (counter > 0) 
      $('#basic_info').slideDown(400);         
    else 
      $('#basic_info').slideUp(400);
   });
  });

Dengan menggunakan pendekatan ini, Anda dapat menambahkan elemen ke event handler sebanyak yang diperlukan tanpa perlu menyesuaikan event handler Anda.

1
Psi 20 Agustus 2017, 01:51