Bu özelliği özleyen tek kişi siz değilsiniz. Bence bootstrap bazen çok "minimalist", arkasındaki insanlar "uygulama katmanında" yapılması gereken çok şey var ama jQuery önyükleme takozları kendilerini imkansız hale getirdiğinde hiçbir faydası yok!
hattı 61. başlar: Bu gibi
Modal.prototype = {
constructor: Modal
//add this function
, lock: function() {
this.options.locked = true
}
//add this function
, unlock: function() {
this.options.locked = false
}
, toggle: function() {
...
...
(ben çok fazla kodudur çünkü burada modal.prototype
sadece baş göstermesi) 0 Sonra da Modal.prototype de, işlevini hide
bulmak ve bu (yine derinin sadece üst gösterdi) şuna benzer şekilde , hide: function (e) {
e && e.preventDefault()
var that = this
//add this line
if (that.options.locked) return
e = $.Event('hide')
...
...
bir satır ekleyin Ve nihayet, için $.fn.modal.defaults
değiştirmek:
$.fn.modal.defaults = {
backdrop: true
, keyboard: true
, show: true
, locked: false //this line is added
}
Artık, önyükleme modalınızda, anında mobili kilitleme/kilit açma işleviniz var; bu da kullanıcının modalını kritik anlarda kapatmasını engelliyor.
Örnek:
Bu değişmiş bir ben "kilit", iki düğme ekledikten http://twitter.github.com/bootstrap/javascript.html#modals
<!-- Button to trigger modal -->
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" onclick="$('#myModal').modal('lock');">lock</button>
<button class="btn btn-primary" onclick="$('#myModal').modal('unlock');">unLock</button>
</div>
</div>
<script type="text/javascript">
den "Canlı Demo" versiyonu ve "kilit açma" dır - tıklandığında onlar set kipli kilitli veya normal modda (başlangıç durumuna getirilen ayarlar)
'u düzenleyin, yalnızca sizin için kilit/onlock çağırmanız yeterlidir. yapıyor ajax:
$("myModal").modal('lock');
$.ajax({
url: url,
...
...
, success(html) {
...
...
$("#myModal").modal('unlock');
}
});
arka plan (gri arka plan) kayboluyor gibi görünüyor. el ile $ ('# thisModal'). modal ({backdrop: true}); onu kullanmak için. Bu bir hata mı yoksa bunu yapmanın tek yolu bu mu? –
@TianLoon. Bootstrap sürümü ve [jsfiddle] (http://jsfiddle.net/Sz7ZS/) bootstrap 2.3.2 (en "popüler" 2.x sürümü) kullanarak bildirimle ilgili güncellemeyi güncellediniz. Kemanda arka plan belirir - belki de yanlışlıkla 0, beyaz ya da bir şey opak olarak ayarladınız? – davidkonrad
BU İÇİN ÇOK TEŞEKKÜR EDERİZ !!!!! –