函数触发多次,具体取决于您打开模态的次数

时间:2019-06-11 06:06:49

标签: javascript jquery

所以我有这种方式来获取薪水信息,我在表格中有一个职员列表

no         |         name           |        gender
1          |     test one           |           M
2          |     test two           |           F

name是一个锚标记,可以单击,我添加了一个名为btn-modal的类,它将触发模式,

功能如下:

$('.btn-modal').function(e){
  e.preventDefault();
  var obj = $(this);

  $.post('/function/getStaff', idx:obj.data('idx'), function(data) {
   if (data.ret) { 
     $('#myModal').modal('show');

     $('.modal-title').text(data.item.name);

     if (data.item.gender == 'MALE') {
        $('.btn-trigger').addClass('btn-male').removeClass('btn-female'); // Just in case there is a btn-female...
        $('.btn-male').function() {
           $.post('/function/male', {}, function(result) {
              if (result.ret) {
                  alert('This guys salary is: ' + result.salary);
              }
           }, 'json');
        });
     } else {
        $('.btn-trigger').addClass('btn-female').removeClass('btn-male'); // Just in case there is a btn-male...
        $('.btn-female').function() {
           $.post('/function/female', {}, function(result) {
              if (result.ret) {
                  alert('This ladies salary is: ' + result.salary);
              }
           }, 'json');
        });
     }
   }
  }, 'json');

});

如果您一次打开模式,就可以了,但是如果您关闭它,然后再次将其打开给另一个用户或同一个用户,然后单击按钮,它会在Network中显示多少触发,例如如果您一次打开测试一次,然后两次打开测试两次,它将显示在Network中:

   male
   female
   female

如何预防这种情况?打开模式后,我尝试添加return false,但还是一样。

0 个答案:

没有答案