Maison > interface Web > js tutoriel > Comment résoudre le problème en cliquant sur le menu déroulant bootstrap pour le masquer immédiatement

Comment résoudre le problème en cliquant sur le menu déroulant bootstrap pour le masquer immédiatement

零下一度
Libérer: 2017-06-15 13:30:48
original
1478 Les gens l'ont consulté

Cet article présente principalement la méthode pour résoudre le bug consistant à masquer le menu déroulant bootstrap immédiatement lorsque vous cliquez dessus. Il a une certaine valeur de référence. Ceux qui sont intéressés peuvent en apprendre davantage

Hier, j'ai utilisé jQuery. et bootstrap pour implémenter la case à cocher du menu déroulant. Aujourd'hui, j'ai combiné la démo terminée dans le projet et j'ai trouvé un bug en cliquant sur la case à cocher de la banque, le menu déroulant p sera immédiatement masqué à chaque fois, ce qui signifie qu'un seul. peuvent être sélectionnés à la fois.


Cela devrait être la raison de la propagation de l'événement. Le code est modifié comme suit :


var banks = $('.all').siblings().children();
$('.all>input').click(function() {
  var flag = $(this).prop('checked');
  banks.prop('checked', flag);
})

// 阻止事件传播, 否则在点击复选框的时候,dropdown-menu这个p会立即隐藏
$('.dropdown-menu label').click(function(e) {
  e.stopPropagation();
});
banks.click(function() {
  // 如果有一个没选中,全选按钮不选中
  // 如果全部选中,全选按钮被选中
  var num = 0;
  banks.each(function() {
    if ($(this).prop("checked")) {
      num++;
    }
  })
  if (num == banks.length) {
    $('.all>input').prop('checked', true);
  } else {
    $('.all>input').prop('checked', false);
  }
})
Copier après la connexion

De plus, la nouvelle fonction qui doit être ajoutée est que lorsque vous cliquez sur le bouton "Enregistrer", le nom de la banque sélectionnée doit être concaténé avec des virgules dans une chaîne et transmis au backend. Cette partie est relativement simple, le code est le suivant :


// 在提交时,获取选中的所有值,并把这些值拼接成字符串
$('.submit').click(function() {
  var bankArr = [];
  banks.each(function() {
    if ($(this).prop("checked")) {
      bankArr.push($(this).val());
    }
  });
  var bankStr = bankArr.join(',');
  console.log(bankStr);
})
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal