2016-08-02 74 views
0

在沒有使用setTimeout()之前,是否有任何特定的方式來執行JS腳本,直到彈出元素出現?以下是彈出式打開的步驟。彈出式事件處理程序

  • 用戶在abc.com上並單擊按鈕。
  • 彈出元素出現。
  • 用戶在彈出窗口中單擊另一個按鈕。事件處理程序應該特定於此點擊。

我目前的實施情況如下。

$(document).on('click',function() { 
    window.setTimeout(function() { 
     if ($('#pop-up').css("visibility") === "visible") { 
      $('.modal-footer button').click(function() { 
       // Do something; 
       } 
      }); 
     } 
    },1500); 
}); 
+1

的可能的複製[jQuery的事件來觸發動作時一個div是可見](http://stackoverflow.com /問題/ 1225102/jQuery的事件來觸發動作,當-A-DIV-是國產可見) – mastazi

回答

0

如果你正在展示的引導模式(我可以從你已經在你的代碼中使用的自舉類推斷),那麼你可以在官方文檔here使用shown.bs.modal

外觀

shown.bs.modal

這甚至當模式對用戶可見時會觸發t(等待CSS轉換完成)​​。如果由於點擊而導致點擊的元素可用作事件的relatedTarget屬性。

例如

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
</head> 
 
<body> 
 

 
<div class="container"> 
 
    <h2>Modal Events - shown.bs.modal</h2> 
 
    <!-- Trigger the modal with a button --> 
 
    <button type="button" class="btn btn-info btn-lg" id="myBtn">Open Modal</button> 
 

 
    <!-- Modal --> 
 
    <div class="modal fade" id="myModal" role="dialog"> 
 
    <div class="modal-dialog"> 
 
    
 
     <!-- Modal content--> 
 
     <div class="modal-content"> 
 
     <div class="modal-header"> 
 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
 
      <h4 class="modal-title">Modal Header</h4> 
 
     </div> 
 
     <div class="modal-body"> 
 
      <p>The <strong>shown.bs.modal</strong> event occurs when the modal is fully shown.</p> 
 
     </div> 
 
     <div class="modal-footer"> 
 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
 
     </div> 
 
     </div> 
 
     
 
    </div> 
 
    </div> 
 
</div> 
 
    
 
<script> 
 
$(document).ready(function(){ 
 
    $("#myBtn").click(function(){ 
 
     $("#myModal").modal("show"); 
 
    }); 
 
     $("#myModal").on('shown.bs.modal', function() { 
 
      alert('The modal is fully shown.'); 
 
    }); 
 
}); 
 
</script> 
 

 
</body> 
 
</html>

source