5

我有一個代碼,我想要做的就是關閉ajax成功上的模式。這是我的代碼:以編程方式關閉ajax成功上的引導模式

腳本

success: function() { 
    console.log("delete success"); 
    $('#deleteContactModal').modal('hide'); 
    $("#loadContacts").load("/main/loadContacts"); 

} 

HTML

<div class="modal fade" id="deleteContactModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog modal-sm" role="document"> 
    <div class="modal-content"> 
<!--everything goes here --> 
    </div> 
    </div> 
</div> 

一切都只是工作,除了當代碼$('#deleteContactModal').modal('hide');觸發器,它只是顯示一個黑色的褪色畫面是這樣的:

enter image description here

模式關閉,但黑色褪色仍然存在。我在這裏錯過了什麼嗎?先謝謝你。我使用bootstrap 3.3

+0

你確定你沒有任何控制檯錯誤?我只看到出現錯誤時屏幕保持黑屏。從我告訴你的代碼示例中,一切看起來都是正確的。 –

+0

@AronBoyette無控制檯錯誤。 – FewFlyBy

+0

http://stackoverflow.com/questions/23677765/bootstrap-modal-hide-is-not-working –

回答

7

就嘗試用模式DIV aria-hidden="true"

如添加此屬性:

<div aria-hidden="true" class="modal fade" id="deleteContactModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 

這是我的工作示例

<div class="modal fade" id="copy_course_modal" tabindex="-1" role="dialog" aria-labelledby="copycourse" aria-hidden="true"> 
    <div class="modal-dialog"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
        <h4 class="modal-title" id="purchaseLabel">Copy Chapter</h4> 
       </div> 
       <div class="modal-body"> 
       Modal body content here 
       </div> 
       <div class="modal-footer"> 
        <button type="button" class="btn btn-primary" onclick="saveCopiedCourse()">Copy Course</button> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       </div> 
      </div> 
     </div> 
</div> 

和成功做相同。

$("#copy_course_modal").modal('hide'); 
+0

仍然一樣.. – FewFlyBy

+1

我更新了我的答案,看一看 – Qazi

4

嘗試:

$(".modal.in").modal("hide"); 

這將隱藏當前活動的模式。

5

我有同樣的確切問題,我能找到工作的唯一方法是單獨刪除正在生成的模態的部分。只需將這個函數放在你的js中,並在你的html或js中的按鈕上做一個onclick事件。希望我幫助。

function hideModal(){ 
    $(".modal").removeClass("in"); 
    $(".modal-backdrop").remove(); 
    $('body').removeClass('modal-open'); 
    $('body').css('padding-right', ''); 
    $(".modal").hide(); 
} 
3

在類似情況下遇到了這個問題我自己。

它似乎與javascript + bootstrap動畫的異步性質有關。

這是一個骯髒,骯髒的黑客,但包裹在超時呼叫「隱藏」使得它爲我工作:

setTimeout(function(){$("#myModal").modal('hide')}, 300); 

如果採用這種「解決方案」的問題,你可能需要調整超時值。 Bootstrap動畫似乎需要大約125 - 200毫秒,所以300提供了一個很好的安全緩衝區。

1

簡單地以編程方式點擊對話框的關閉按鈕。 (「button [data-dismiss = \」modal \「]」)。click();

這會自動關閉對話框。

0

這只是一個計時問題。淡出動畫需要時間,javascript無法關閉它。只要取消淡入淡出的動畫,它就能正常工作!

<div class="modal" tabindex="-1" role="dialog" aria-labelledby="..."> 
    ... 
</div> 

(不使用類=「模式變臉」,強制類=「模式」)