2016-08-02 75 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