جاوا اسکرپٹ
ہمارے اختیاری JavaScript پلگ ان کے ساتھ بوٹسٹریپ کو زندہ کریں۔ ہر پلگ ان، ہمارے ڈیٹا اور پروگرامیٹک API کے اختیارات اور مزید کے بارے میں جانیں۔
انفرادی یا مرتب شدہ
پلگ انز کو انفرادی طور پر شامل کیا جا سکتا ہے (بوٹسٹریپ کے انفرادی کا استعمال کرتے ہوئے js/dist/*.js
)، یا سبھی کو ایک ساتھ استعمال کرتے ہوئے bootstrap.js
یا کم کیا گیا bootstrap.min.js
(دونوں کو شامل نہ کریں)۔
اگر آپ بنڈلر (ویب پیک، رول اپ…) استعمال کرتے ہیں، تو آپ /js/dist/*.js
وہ فائلیں استعمال کر سکتے ہیں جو UMD تیار ہیں۔
بوٹسٹریپ کو بطور ماڈیول استعمال کرنا
ہم بوٹسٹریپ کا ایک ایسا ورژن فراہم کرتے ہیں جو بطور ESM
( bootstrap.esm.js
اور bootstrap.esm.min.js
) بنایا گیا ہے جو آپ کو اپنے براؤزر میں بوٹسٹریپ کو ماڈیول کے طور پر استعمال کرنے کی اجازت دیتا ہے، اگر آپ کے ٹارگٹڈ براؤزر اس کی حمایت کرتے ہیں ۔
<script type="module">
import { Toast } from 'bootstrap.esm.min.js'
Array.from(document.querySelectorAll('.toast'))
.forEach(toastNode => new Toast(toastNode))
</script>
غیر مطابقت پذیر پلگ ان
براؤزر کی حدود کی وجہ سے، ہمارے کچھ پلگ ان، یعنی ڈراپ ڈاؤن، ٹول ٹِپ اور پاپ اوور پلگ ان، کو ٹائپ <script>
کے ساتھ ٹیگ میں استعمال نہیں کیا جا سکتا module
کیونکہ وہ Popper پر منحصر ہیں۔ مسئلہ کے بارے میں مزید معلومات کے لیے یہاں دیکھیں ۔
انحصار
کچھ پلگ ان اور سی ایس ایس اجزاء دوسرے پلگ انز پر منحصر ہیں۔ اگر آپ انفرادی طور پر پلگ انز شامل کرتے ہیں، تو دستاویزات میں ان انحصارات کو چیک کرنا یقینی بنائیں۔
ہمارے ڈراپ ڈاؤن، پاپ اوور اور ٹول ٹپس بھی Popper پر منحصر ہیں۔
اب بھی jQuery استعمال کرنا چاہتے ہیں؟ یہ ممکن ہے!
بوٹسٹریپ 5 کو jQuery کے بغیر استعمال کرنے کے لیے ڈیزائن کیا گیا ہے، لیکن jQuery کے ساتھ ہمارے اجزاء کو استعمال کرنا اب بھی ممکن ہے۔ اگر بوٹسٹریپ آبجیکٹ jQuery
میںwindow
پتہ لگاتا ہے تو یہ ہمارے تمام اجزاء کو jQuery کے پلگ ان سسٹم میں شامل کر دے گا۔ اس کا مطلب ہے کہ آپ $('[data-bs-toggle="tooltip"]').tooltip()
ٹول ٹپس کو فعال کرنے کے قابل ہو جائیں گے۔ ہمارے دوسرے اجزاء کے لیے بھی یہی ہے۔
ڈیٹا کی خصوصیات
تقریباً تمام بوٹسٹریپ پلگ انز کو صرف HTML کے ذریعے ڈیٹا انتساب کے ساتھ فعال اور ترتیب دیا جا سکتا ہے (جاوا اسکر��ٹ کی فعالیت کو استعمال کرنے کا ہمارا ترجیحی طریقہ)۔ اس بات کو یقینی بنائیں کہ کسی ایک عنصر پر ڈیٹا کی خصوصیات کا صرف ایک سیٹ استعمال کریں (مثال کے طور پر، آپ ایک ہی بٹن سے ٹول ٹپ اور موڈل کو متحرک نہیں کر سکتے۔)
سلیکٹرز
فی الحال DOM عناصر سے استفسار کرنے کے لیے ہم مقامی طریقے querySelector
اور querySelectorAll
کارکردگی کی وجوہات کے لیے استعمال کرتے ہیں، اس لیے آپ کو درست سلیکٹرز استعمال کرنا ہوں گے۔ اگر آپ خصوصی سلیکٹرز استعمال کرتے ہیں، مثال کے طور پر: collapse:Example
ان سے بچنا یقینی بنائیں۔
تقریبات
بوٹسٹریپ زیادہ تر پلگ ان کی منفرد کارروائیوں کے لیے حسب ضرورت ایونٹس فراہم کرتا ہے۔ عام طور پر، یہ ایک غیرمعمولی اور ماضی کے حصہ دار کی شکل میں آتے ہیں - جہاں infinitive (ex. show
) کسی واقعہ کے آغاز پر متحرک ہوتا ہے، اور اس کی ماضی کی شریک شکل (ex. shown
) کسی عمل کی تکمیل پر متحرک ہوتی ہے۔
تمام غیرمعمولی واقعات preventDefault()
فعالیت فراہم کرتے ہیں۔ یہ کسی کارروائی کے شروع ہونے سے پہلے اس پر عمل درآمد کو روکنے کی صلاحیت فراہم کرتا ہے۔ ایونٹ ہینڈلر سے غلط واپس آنے سے بھی خود بخود کال ہو جائے گی preventDefault()
۔
var myModal = document.getElementById('myModal')
myModal.addEventListener('show.bs.modal', function (event) {
if (!data) {
return event.preventDefault() // stops modal from being shown
}
})
jQuery کے واقعات
بوٹسٹریپ jQuery کا پتہ لگائے گا اگر آبجیکٹ jQuery
میں موجود window
ہے اور اس پر کوئی data-bs-no-jquery
وصف سیٹ نہیں ہے <body>
۔ اگر jQuery پایا جاتا ہے تو، بوٹسٹریپ jQuery کے ایونٹ سسٹم کی بدولت واقعات کو خارج کرے گا۔ لہذا اگر آپ بوٹسٹریپ کے واقعات سننا چاہتے ہیں، تو آپ کو jQuery کے طریقے ( .on
, .one
) کے بجائے استعمال کرنا ہوں گے addEventListener
۔
$('#myTab a').on('shown.bs.tab', function () {
// do something...
})
پروگرامیٹک API
تمام تعمیر کنندگان اختیاری آپشن آبجیکٹ یا کچھ بھی نہیں قبول کرتے ہیں (جو اپنے پہلے سے طے شدہ رویے کے ساتھ ایک پلگ ان شروع کرتا ہے):
var myModalEl = document.getElementById('myModal')
var modal = new bootstrap.Modal(myModalEl) // initialized with defaults
var modal = new bootstrap.Modal(myModalEl, { keyboard: false }) // initialized with no keyboard
اگر آپ ایک خاص پلگ ان مثال حاصل کرنا چاہتے ہیں، تو ہر پلگ ان ایک getInstance
طریقہ کو ظاہر کرتا ہے۔ اسے کسی عنصر سے براہ راست بازیافت کرنے کے لیے، یہ کریں: bootstrap.Popover.getInstance(myPopoverEl)
.
کنسٹرکٹرز میں سی ایس ایس سلیکٹرز
آپ پلگ ان کو شروع کرنے کے لیے DOM عنصر کے بجائے پہلی دلیل کے طور پر CSS سلیکٹر بھی استعمال کر سکتے ہیں۔ فی الحال پلگ ان کا عنصر طریقہ سے پایا جاتا ہے querySelector
کیونکہ ہمارے پلگ ان صرف ایک عنصر کو سپورٹ کرتے ہیں۔
var modal = new bootstrap.Modal('#myModal')
var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
غیر مطابقت پذیر افعال اور ٹرانزیشنز
تمام پروگرامیٹک API طریقے غیر مطابقت پذیر ہیں اور منتقلی شروع ہونے کے بعد لیکن اس کے ختم ہونے سے پہلے کال کرنے والے کے پاس واپس آجاتے ہیں ۔
منتقلی مکمل ہونے کے بعد کسی کارروائی کو انجام دینے کے لیے، آپ متعلقہ واقعہ سن سکتے ہیں۔
var myCollapseEl = document.getElementById('myCollapse')
myCollapseEl.addEventListener('shown.bs.collapse', function (event) {
// Action to execute once the collapsible area is expanded
})
اس کے علاوہ منتقلی جزو پر ایک طریقہ کال کو نظر انداز کر دیا جائے گا ۔
var myCarouselEl = document.getElementById('myCarousel')
var carousel = bootstrap.Carousel.getInstance(myCarouselEl) // Retrieve a Carousel instance
myCarouselEl.addEventListener('slid.bs.carousel', function (event) {
carousel.to('2') // Will slide to the slide 2 as soon as the transition to slide 1 is finished
})
carousel.to('1') // Will start sliding to the slide 1 and returns to the caller
carousel.to('2') // !! Will be ignored, as the transition to the slide 1 is not finished !!
پہلے سے طے شدہ ترتیبات
Constructor.Default
آپ پلگ ان کے آبجیکٹ میں ترمیم کرکے پلگ ان کی ڈیفالٹ سیٹنگز کو تبدیل کر سکتے ہیں :
// changes default for the modal plugin's `keyboard` option to false
bootstrap.Modal.Default.keyboard = false
کوئی تنازعہ نہیں (صرف اس صورت میں جب آپ jQuery استعمال کرتے ہیں)
بعض اوقات بوٹسٹریپ پلگ ان کو دوسرے UI فریم ورک کے ساتھ استعمال کرنا ضروری ہوتا ہے۔ ان حالات میں نام کی جگہ کے تصادم کبھی کبھار ہو سکتے ہیں۔ اگر ایسا ہوتا ہے، تو آپ اس .noConflict
پلگ ان پر کال کر سکتے ہیں جس کی قدر کو آپ واپس کرنا چاہتے ہیں۔
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
ورژن نمبرز
بوٹسٹریپ کے ہر پلگ ان کے ورژن تک پلگ ان کے کنسٹرکٹر کی VERSION
پراپرٹی کے ذریعے رسائی حاصل کی جا سکتی ہے۔ مثال کے طور پر، ٹول ٹپ پلگ ان کے لیے:
bootstrap.Tooltip.VERSION // => "5.1.3"
جاوا اسکرپٹ کے غیر فعال ہونے پر کوئی خاص فال بیک نہیں۔
بوٹسٹریپ کے پلگ ان خاص طور پر جب جاوا اسکرپٹ کو غیر فعال کر دیا جاتا ہے تو واپس نہیں آتے۔ اگر آپ اس معاملے میں صارف کے تجربے کی پرواہ کرتے ہیں تو، <noscript>
اپنے صارفین کو صورتحال (اور جاوا اسکرپٹ کو دوبارہ فعال کرنے کا طریقہ) کی وضاحت کرنے کے لیے استعمال کریں، اور/یا اپنی مرضی کے مطابق فال بیکس شامل کریں۔
تیسری پارٹی کی لائبریریاں
بوٹسٹریپ باضابطہ طور پر فریق ثالث JavaScript لائبریریوں جیسے Prototype یا jQuery UI کی حمایت نہیں کرتا ہے۔ .noConflict
ایونٹس اور نام کی جگہ کے باوجود ، مطابقت کے مسائل ہوسکتے ہیں جنہیں آپ کو خود ہی ٹھیک کرنے کی ضرورت ہے۔
سینیٹائزر
ٹول ٹپس اور پاپ اوور ہمارے بلٹ ان سینیٹائزر کا استعمال ایسے اختیارات کو صاف کرنے کے لیے کرتے ہیں جو HTML کو قبول کرتے ہیں۔
پہلے سے طے شدہ allowList
قدر درج ذیل ہے:
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
var DefaultAllowlist = {
// Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
}
اگر آپ اس ڈیفالٹ میں نئی قدریں شامل کرنا چاہتے ہیں تو آپ allowList
درج ذیل کام کر سکتے ہیں۔
var myDefaultAllowList = bootstrap.Tooltip.Default.allowList
// To allow table elements
myDefaultAllowList.table = []
// To allow td elements and data-bs-option attributes on td elements
myDefaultAllowList.td = ['data-bs-option']
// You can push your custom regex to validate your attributes.
// Be careful about your regular expressions being too lax
var myCustomRegex = /^data-my-app-[\w-]+/
myDefaultAllowList['*'].push(myCustomRegex)
اگر آپ ہمارے سینیٹائزر کو نظرانداز کرنا چاہتے ہیں کیونکہ آپ ایک وقف شدہ لائبریری استعمال کرنے کو ترجیح دیتے ہیں، مثال کے طور پر DOMpurify ، تو آپ کو درج ذیل کام کرنا چاہیے:
var yourTooltipEl = document.getElementById('yourTooltip')
var tooltip = new bootstrap.Tooltip(yourTooltipEl, {
sanitizeFn: function (content) {
return DOMPurify.sanitize(content)
}
})