彈出次數問題
<script> ??$(function(){ ????$(".btn").click(function(){ ??????$("#mymodal").modal("toggle"); ??????$('#mymodal').on('hide.bs.modal',function(){ ????????alert('我要隱藏啦'); ??????}) ????}); ??}); //???$('#mymodal').on('hide.bs.modal',function(){ //?????alert('我要隱藏啦'); //???}) </script>
為何代碼段放置在【click()事件里面時,每增加一次點擊,彈出就會增加兩次】,而【代碼段單獨放置時則只會彈出一次警告框】,警告框彈出次數不隨點擊次數的增加而增加?
2016-04-25
你可以把hide.bs.modal看做是一個和click 一樣的動作。
hide.bs.modal這個動作的意思是:在hide方法調用時(但還未關閉隱藏)立即觸發,就是當你關閉彈出框的時候就立刻觸發這個動作,而這個動作綁定的是一個function{? ?alert('我要隱藏啦');? } 事件。
現在回答你的問題,
你把代碼寫在里面,每點擊一次按鈕,都會重復綁定一次事件$('#mymodal').on('hide.bs.modal',function ) , 這個事件綁定不是覆蓋的,而是累加的,相當于你綁定了很多次同樣的事件,每一個循環你點擊了兩次按鈕("點擊我","關閉"),所以增加兩次。