आप अकेले नहीं हैं जो उस सुविधा को याद कर रहे हैं। मुझे लगता है कि कभी-कभी बूटस्ट्रैप भी "minimalistic" होता है, पीछे के लोगों के पास "कार्यान्वयन परत" में बहुत कुछ किया जाना चाहिए, लेकिन बूटस्ट्रैप jQuery प्लगइन स्वयं को असंभव बनाता है, लेकिन इसका उपयोग करना असंभव नहीं है!
bootstrap.js
v2.1.1 में
मोडल लाइन 61
Modal.prototype
में
में शुरू होता है, दो काम करता है, lock
और unlock
जोड़ने, तो यह दिखता है:
आप इस तरह कार्यक्षमता खुद को लागू करना इस तरह (मैं यहाँ केवल modal.prototype
की शुरुआत दिखाने के लिए, क्योंकि यह बहुत अधिक कोड है)
Modal.prototype = {
constructor: Modal
//add this function
, lock: function() {
this.options.locked = true
}
//add this function
, unlock: function() {
this.options.locked = false
}
, toggle: function() {
...
...
फिर, यह भी Modal.prototype में, समारोह hide
मिल जाए, और इसलिए यह इस (फिर से, छिपाने के केवल शीर्ष दिखाया जाता है) की तरह दिखता है एक पंक्ति जोड़ें
, hide: function (e) {
e && e.preventDefault()
var that = this
//add this line
if (that.options.locked) return
e = $.Event('hide')
...
...
और अंत में, परिवर्तन करने के लिए $.fn.modal.defaults
:
$.fn.modal.defaults = {
backdrop: true
, keyboard: true
, show: true
, locked: false //this line is added
}
अब आपके बूटस्ट्रैप मोडल में ऑन-द-फ्लाई लॉक/अनलॉक कार्यक्षमता है, जो उपयोगकर्ता को महत्वपूर्ण क्षणों पर मोडल बंद करने से रोकती है।
उदाहरण:
यह एक बदले हुए मैं दो बटन डाला है, "ताला" से 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">
"लाइव डेमो" का संस्करण और "अनलॉक" है - जब क्लिक किया, वे सेट या तो लॉक या सामान्य मोड में मोडल (
संपादित करें, अपने मामले में, आपको केवल लॉक/ऑनलॉक कॉल करना होगा कर ajax:
$("myModal").modal('lock');
$.ajax({
url: url,
...
...
, success(html) {
...
...
$("#myModal").modal('unlock');
}
});
, बैकड्रॉप (ग्रे पृष्ठभूमि) गायब होने लगती है। मुझे मैन्युअल रूप से $ ('# thisModal') की आवश्यकता है। मोडल ({backdrop: true}); इसके प्रयेाग के लिए। क्या यह एक गलती है या ऐसा करने का यही एकमात्र तरीका है? –
@ टियांलून। बूटस्ट्रैप संस्करण के बारे में अधिसूचना के साथ उत्तर और एक [jsfiddle] (http://jsfiddle.net/Sz7ZS/) बूटस्ट्रैप 2.3.2 (सबसे अधिक "लोकप्रिय" 2.x संस्करण) का उपयोग कर अद्यतन किया है। बेवकूफ में पृष्ठभूमि प्रकट होती है - शायद आप गलती से इसे अपारदर्शी 0, सफेद या कुछ सेट कर चुके हैं? – davidkonrad
आपको इसके लिए बहुत कुछ धन्यवाद !!!!! –