如何首先调用点击侦听器中定义的函数?

时间:2020-10-23 16:38:43

标签: javascript bootstrap-modal

我有以下模态

 <div class="modal fade" id="my-modal">
        <div class="modal-dialog modal-container vertically-centered">
            <div class="modal-content">
      
                <!-- Modal Header -->
            <div class="modal-header">
               <button type="button" class="close" id="close-modal" data-dismiss="modal">
            </div>
        
                <!-- Modal body -->
                <div class="modal-body"> </div>
        
                <!-- Modal footer -->
                <div class="modal-footer">
                    <button type="button" id="my-btn" data-dismiss="modal">Create</button>
                </div>
            </div>
        </div> 
   </div>

我在'my-btn'上有一个点击监听器

$("#my-btn").click(function () {
    doSomething();
});

我已经定义了hidden.bs.modal事件以关闭模式

$("#my-modal").on('hidden.bs.modal', function () {
   resetSomething();
});

当我单击“创建”按钮时,如何确保先调用doSomething()然后先调用resetSomething()

1 个答案:

答案 0 :(得分:0)

通过JavaScript隐藏模式。 https://getbootstrap.com/docs/4.5/components/modal/#via-javascript

function doSomething() {
  console.log("doSomething");
}

function resetSomething() {
  console.log("resetSomething");
}

$("#my-btn").click(function() {
  doSomething();
  resetSomething();
  $("#my-modal").modal('hide');
});

$("#my-modal").on('hidden.bs.modal', function() {
  console.log("Modal closed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"></script>

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#my-modal">
    Launch modal
</button>

<div class="modal fade" id="my-modal">
    <div class="modal-dialog modal-container vertically-centered">
        <div class="modal-content">

            <!-- Modal Header -->
            <div class="modal-header">
                <button type="button" class="close" id="close-modal" data-dismiss="modal">
            </div>

            <!-- Modal body -->
            <div class="modal-body"> </div>

            <!-- Modal footer -->
            <div class="modal-footer">
                <button type="button" class="btn btn-primary" id="my-btn">Create</button>
            </div>
        </div>
    </div>
</div>