问答详情
源自:1-12 模态弹出框--JavaScript触发时的参数设置(二)

弹出次数问题

<script>
  $(function(){
    $(".btn").click(function(){
      $("#mymodal").modal("toggle");
      $('#mymodal').on('hide.bs.modal',function(){
        alert('我要隐藏啦');
      })
    });
  });
//   $('#mymodal').on('hide.bs.modal',function(){
//     alert('我要隐藏啦');
//   })
</script>

为何代码段放置在【click()事件里面时,每增加一次点击,弹出就会增加两次】,而【代码段单独放置时则只会弹出一次警告框】,警告框弹出次数不随点击次数的增加而增加?


提问者:TWT 2016-04-24 11:42

个回答

  • 陈微语
    2016-04-25 16:22:09
    已采纳

    你可以把hide.bs.modal看做是一个和click 一样的动作。

    hide.bs.modal这个动作的意思是:在hide方法调用时(但还未关闭隐藏)立即触发,就是当你关闭弹出框的时候就立刻触发这个动作,而这个动作绑定的是一个function{   alert('我要隐藏啦');  } 事件。

    现在回答你的问题,

    你把代码写在里面,每点击一次按钮,都会重复绑定一次事件$('#mymodal').on('hide.bs.modal',function ) , 这个事件绑定不是覆盖的,而是累加的,相当于你绑定了很多次同样的事件,每一个循环你点击了两次按钮("点击我","关闭"),所以增加两次。