التلميحات (Popovers)
مستندات وأمثلة لإضافة الـ Bootstrap popovers، مثل تلك الموجودة في iOS، إلى أي عنصر في موقعك.
نظرة عامة
أشياء يجب معرفتها عند استخدام إضافة الـ popover plugin:
- تعتمد الـ Popovers على مكتبة الطرف الثالث Popper لتحديد الموضع. يجب تضمين popper.min.js قبل
bootstrap.js، أو استخدامbootstrap.bundle.min.jsالتي تحتوي على Popper. - تتطلب الـ Popovers إضافة الـ popover plugin كاعتمادية.
- الـ Popovers اختيارية لأسباب تتعلق بالأداء، لذا يجب عليك تهيئتها بنفسك.
- قيم
titleوcontentذات الطول الصفري لن تعرض popover أبداً. - حدد
container: 'body'لتجنب مشاكل العرض في المكونات الأكثر تعقيداً (مثل مجموعات الإدخال، مجموعات الأزرار، إلخ). - لن يعمل تفعيل الـ popovers على العناصر المخفية.
- الـ Popovers للعناصر ذات الفئة
.disabledأو سمةdisabledيجب تفعيلها على عنصر غلاف (wrapper element). - عند تفعيلها من روابط (anchors) تمتد عبر عدة أسطر، ستتمركز الـ popovers بين العرض الإجمالي للروابط. استخدم
.text-nowrapعلى عناصر<a>لتجنب هذا السلوك. - يجب إخفاء الـ popovers قبل إزالة العناصر المقابلة لها من الـ DOM.
- يمكن تفعيل الـ popovers بفضل عنصر موجود داخل shadow DOM.
بشكل افتراضي، يستخدم هذا المكوّن أداة تنقية المحتوى (content sanitizer) المدمجة، والتي تقوم بإزالة أي عناصر HTML غير مسموح بها صراحةً. راجع قسم الـ sanitizer في مستندات JavaScript الخاصة بنا لمزيد من التفاصيل.
تعتمد تأثيرات الرسوم المتحركة لهذا المكوّن على استعلام الوسائط (media query) الخاص بـ prefers-reduced-motion. راجع قسم تقليل الحركة في مستندات إمكانية الوصول لدينا.
استمر في القراءة لمعرفة كيف تعمل الـ popovers مع بعض الأمثلة.
أمثلة
تفعيل الـ popovers
كما ذكرنا أعلاه، يجب عليك تهيئة الـ popovers قبل أن تتمكن من استخدامها. إحدى الطرق لتهيئة جميع الـ popovers في الصفحة هي اختيارها عن طريق سمة data-bs-toggle الخاصة بها، على النحو التالي:
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
عرض توضيحي مباشر
نستخدم JavaScript مشابهة للمقتطف أعلاه لعرض الـ popover المباشر التالي. يتم تعيين العناوين عبر data-bs-title ومحتوى الجسم عبر data-bs-content.
يمكنك استخدام title أو data-bs-title في الـ HTML الخاص بك. عند استخدام title، سيقوم Popper باستبداله تلقائياً بـ data-bs-title عند رندرة العنصر.
<button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" data-bs-title="Popover title" data-bs-content="And here’s some amazing content. It’s very engaging. Right?">Click to toggle popover</button> أربعة اتجاهات
تتوفر أربعة خيارات: الأعلى (top)، واليمين (right)، والأسفل (bottom)، واليسار (left). يتم عكس الاتجاهات عند استخدام Bootstrap في وضع RTL. قم بتعيين data-bs-placement لتغيير الاتجاه.
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Top popover">
Popover on top
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Right popover">
Popover on right
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover">
Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Left popover">
Popover on left
</button> حاوية container مخصصة
عندما يكون لديك بعض الأنماط في عنصر أب تتداخل مع الـ popover، فستحتاج إلى تحديد container مخصص بحيث يظهر الـ HTML الخاص بالـ popover داخل هذا العنصر بدلاً من ذلك. هذا أمر شائع في الجداول المتوافقة مع الشاشات (Responsive)، ومجموعات الإدخال، وما شابه ذلك.
const popover = new bootstrap.Popover('.example-popover', {
container: 'body'
})
هناك حالة أخرى قد ترغب فيها في تعيين container مخصص صريح وهي الـ popovers الموجودة داخل modal dialog، للتأكد من أن الـ popover نفسه يتم إلحاقه بالـ modal. هذا أمر مهم بشكل خاص للـ popovers التي تحتوي على عناصر تفاعلية – حيث ستقوم الـ modal dialogs بحجز التركيز (trap focus)، لذا ما لم يكن الـ popover عنصراً فرعياً من الـ modal، لن يتمكن المستخدمون من التركيز على هذه العناصر التفاعلية أو تفعيلها.
const popover = new bootstrap.Popover('.example-popover', {
container: '.modal-body'
})
تلميحات مخصصة
تمت الإضافة في الإصدار v5.2.0يمكنك تخصيص مظهر الـ popovers باستخدام متغيرات CSS. نقوم بتعيين فئة (class) مخصصة باستخدام data-bs-custom-class="custom-popover" لتحديد نطاق مظهرنا المخصص واستخدامها لتجاوز بعض متغيرات CSS المحلية.
.custom-popover {
--bs-popover-max-width: 200px;
--bs-popover-border-color: var(--bd-violet-bg);
--bs-popover-header-bg: var(--bd-violet-bg);
--bs-popover-header-color: var(--bs-white);
--bs-popover-body-padding-x: 1rem;
--bs-popover-body-padding-y: .5rem;
}
<button type="button" class="btn btn-secondary"
data-bs-toggle="popover" data-bs-placement="right"
data-bs-custom-class="custom-popover"
data-bs-title="Custom popover"
data-bs-content="This popover is themed via CSS variables.">
Custom popover
</button> الإغلاق عند النقر التالي
استخدم مشغل focus لإغلاق الـ popovers عند نقرة المستخدم التالية على عنصر آخر غير عنصر التفعيل.
يتطلب الإغلاق عند النقر التالي HTML محدداً لضمان سلوك صحيح عبر المتصفحات والمنصات المختلفة. يمكنك فقط استخدام عناصر <a>، وليس <button>، ويجب عليك تضمين tabindex.
<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-title="Dismissible popover" data-bs-content="And here’s some amazing content. It’s very engaging. Right?">Dismissible popover</a> const popover = new bootstrap.Popover('.popover-dismiss', {
trigger: 'focus'
})
العناصر المعطلة
العناصر التي تحتوي على سمة disabled ليست تفاعلية، مما يعني أن المستخدمين لا يمكنهم تمرير الماوس فوقها أو النقر عليها لتفعيل الـ popover (أو الـ tooltip). كحل بديل، ستحتاج إلى تفعيل الـ popover من عنصر غلاف <div> أو <span>، ويفضل جعله قابلاً للتركيز عبر لوحة المفاتيح باستخدام tabindex="0".
بالنسبة لمشغلات الـ popover المعطلة، قد تفضل أيضاً استخدام data-bs-trigger="hover focus" بحيث يظهر الـ popover كاستجابة بصرية فورية للمستخدمين لأنهم قد لا يتوقعون النقر على عنصر معطل.
<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="Disabled popover">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span> الـ (CSS)
المتغيرات (Variables)
تمت الإضافة في الإصدار v5.2.0كجزء من نهج الـ Bootstrap المتطور لمتغيرات CSS، تستخدم الـ popovers الآن متغيرات CSS محلية على popover. لتعزيز التخصيص في الوقت الفعلي. يتم تعيين قيم متغيرات CSS عبر الـ Sass، لذا لا يزال تخصيص الـ Sass مدعوماً أيضاً.
--#{$prefix}popover-zindex: #{$zindex-popover};
--#{$prefix}popover-max-width: #{$popover-max-width};
@include rfs($popover-font-size, --#{$prefix}popover-font-size);
--#{$prefix}popover-bg: #{$popover-bg};
--#{$prefix}popover-border-width: #{$popover-border-width};
--#{$prefix}popover-border-color: #{$popover-border-color};
--#{$prefix}popover-border-radius: #{$popover-border-radius};
--#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
--#{$prefix}popover-box-shadow: #{$popover-box-shadow};
--#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
--#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
@include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
--#{$prefix}popover-header-color: #{$popover-header-color};
--#{$prefix}popover-header-bg: #{$popover-header-bg};
--#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
--#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
--#{$prefix}popover-body-color: #{$popover-body-color};
--#{$prefix}popover-arrow-width: #{$popover-arrow-width};
--#{$prefix}popover-arrow-height: #{$popover-arrow-height};
--#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
متغيرات الـ (Sass)
$popover-font-size: $font-size-sm;
$popover-bg: var(--#{$prefix}body-bg);
$popover-max-width: 276px;
$popover-border-width: var(--#{$prefix}border-width);
$popover-border-color: var(--#{$prefix}border-color-translucent);
$popover-border-radius: var(--#{$prefix}border-radius-lg);
$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}); // stylelint-disable-line function-disallowed-list
$popover-box-shadow: var(--#{$prefix}box-shadow);
$popover-header-font-size: $font-size-base;
$popover-header-bg: var(--#{$prefix}secondary-bg);
$popover-header-color: $headings-color;
$popover-header-padding-y: .5rem;
$popover-header-padding-x: $spacer;
$popover-body-color: var(--#{$prefix}body-color);
$popover-body-padding-y: $spacer;
$popover-body-padding-x: $spacer;
$popover-arrow-width: 1rem;
$popover-arrow-height: .5rem;
الإستخدام
تمكين التلميحات (popovers) عبر الـ JavaScript:
const exampleEl = document.getElementById('example')
const popover = new bootstrap.Popover(exampleEl, options)
حافظ على إمكانية وصول مستخدمي لوحة المفاتيح والتقنيات المساعدة إلى الـ popovers من خلال إضافتها فقط إلى عناصر HTML التي تكون تقليدياً قابلة للتركيز عبر لوحة المفاتيح وتفاعلية (مثل الروابط أو عناصر التحكم في النماذج). بينما يمكن جعل عناصر HTML الأخرى قابلة للتركيز عن طريق إضافة tabindex="0"، فقد يؤدي ذلك إلى إنشاء توقفات تبويب (tab stops) مزعجة ومربكة على العناصر غير التفاعلية لمستخدمي لوحة المفاتيح، ومعظم التقنيات المساعدة حالياً لا تعلن عن الـ popovers في هذه الحالة. بالإضافة إلى ذلك، لا تعتمد فقط على hover كمشغل للـ popovers الخاصة بك لأن هذا سيجعل من المستحيل تفعيلها لمستخدمي لوحة المفاتيح.
تجنب إضافة كمية مفرطة من المحتوى في الـ popovers باستخدام خيار html. بمجرد عرض الـ popovers، يرتبط محتواها بعنصر التفعيل عبر سمة aria-describedby، مما يتسبب في إعلان جميع محتويات الـ popover لمستخدمي التقنيات المساعدة كتدفق واحد طويل وغير منقطع.
لا تدير الـ popovers ترتيب التركيز عبر لوحة المفاتيح، ويمكن أن يكون وضعها عشوائياً في الـ DOM، لذا كن حذراً عند إضافة عناصر تفاعلية (مثل النماذج أو الروابط)، حيث قد يؤدي ذلك إلى ترتيب تركيز غير منطقي أو يجعل محتوى الـ popover نفسه غير قابل للوصول تماماً لمستخدمي لوحة المفاتيح. في الحالات التي يجب عليك فيها استخدام هذه العناصر، فكر في استخدام modal dialog بدلاً من ذلك.
خيارات
بما أنه يمكن تمرير الخيارات عبر سمات البيانات (data attributes) أو الـ JavaScript، يمكنك إضافة اسم الخيار إلى -data-bs ، كما في "data-bs-animation="{value}. تأكد من تغيير نوع حالة اسم الخيار من “camelCase” إلى “kebab-case” عند تمرير الخيارات عبر سمات البيانات. على سبيل المثال، استخدم "data-bs-custom-class="beautifier بدلاً من "data-bs-customClass="beautifier.
بدءاً من Bootstrap 5.2.0، تدعم جميع المكونات سمة بيانات محجوزة تجريبية وهي data-bs-config والتي يمكن أن تحتوي على تكوين بسيط للمكون كسلسلة JSON. عندما يحتوي العنصر على سمات 'data-bs-config='{"delay":0, "title":123} و "data-bs-title="456، ستكون قيمة title النهائية هي 456 وستقوم سمات البيانات المنفصلة بتجاوز القيم المعطاة في data-bs-config. بالإضافة إلى ذلك، يمكن لسمات البيانات الموجودة أن تحتوي على قيم JSON مثل 'data-bs-delay='{"show":0,"hide":150}.
كائن التكوين النهائي هو النتيجة المدمجة لـ data-bs-config و -data-bs و js object حيث يقوم آخر مفتاح-قيمة مُعطى بتجاوز القيم الأخرى.
لاحظ أنه لأسباب أمنية، لا يمكن توفير خيارات sanitize و sanitizeFn و allowList باستخدام سمات البيانات (data attributes).
| الاسم | النوع | الافتراضي | الوصف |
|---|---|---|---|
allowList | object | القيمة الافتراضية | كائن يحتوي على الوسوم والسمات المسموح بها. سيتم إزالة تلك التي لم يتم السماح بها صراحةً بواسطة منظف المحتوى. توخَّ الحذر عند الإضافة إلى هذه القائمة. راجع ورقة الغش الخاصة بمنع Cross Site Scripting من OWASP لمزيد من المعلومات. |
animation | boolean | true | تطبيق انتقال تلاشي CSS على الـ popover. |
boundary | string, element | 'clippingParents' | حدود قيد التجاوز للـ popover (ينطبق فقط على مُعدِّل preventOverflow الخاص بـ Popper). افتراضياً، تكون القيمة 'clippingParents' ويمكن أن تقبل مرجع HTMLElement (عبر JavaScript فقط). لمزيد من المعلومات، راجع مستندات detectOverflow الخاصة بـ Popper. |
container | string, element, false | false | إلحاق الـ popover بعنصر محدد. مثال: container: 'body'. هذا الخيار مفيد بشكل خاص لأنه يسمح لك بوضع الـ popover في تدفق المستند بالقرب من عنصر التفعيل - مما يمنع الـ popover من الابتعاد عن عنصر التفعيل أثناء تغيير حجم النافذة. |
content | string, element, function | '' | المحتوى النصي للـ popover. إذا تم تقديم دالة (function)، فسيتم استدعاؤها مع تعيين مرجع this الخاص بها إلى العنصر المرتبط بالـ popover. |
customClass | string, function | '' | إضافة فئات (classes) إلى الـ popover عند عرضه. لاحظ أن هذه الفئات ستضاف بالإضافة إلى أي فئات محددة في القالب. لإضافة فئات متعددة، افصل بينها بمسافات: 'class-1 class-2'. يمكنك أيضاً تمرير دالة يجب أن تعيد سلسلة نصية واحدة تحتوي على أسماء الفئات الإضافية. |
delay | number, object | 0 | تأخير إظهار وإخفاء الـ popover (بالملي ثانية)—لا ينطبق على نوع التفعيل اليدوي. إذا تم تقديم رقم، يتم تطبيق التأخير على كل من الإخفاء والإظهار. هيكل الكائن هو: delay: { "show": 500, "hide": 100 }. |
fallbackPlacements | string, array | ['top', 'right', 'bottom', 'left'] | تحديد مواضع بديلة من خلال تقديم قائمة من المواضع في مصفوفة (حسب ترتيب التفضيل). لمزيد من المعلومات، راجع مستندات السلوك الخاصة بـ Popper. |
html | boolean | false | السماح بـ HTML في الـ popover. إذا كانت القيمة true، فسيتم عرض وسوم HTML في title الخاص بالـ popover داخل الـ popover. إذا كانت false، فسيتم استخدام خاصية innerText لإدراج المحتوى في الـ DOM. يفضل استخدام النص عند التعامل مع المدخلات التي ينشئها المستخدم لمنع هجمات XSS. |
offset | number, string, function | [0, 8] | إزاحة الـ popover بالنسبة لهدفه. يمكنك تمرير سلسلة نصية في سمات البيانات بقيم مفصولة بفاصلة مثل: data-bs-offset="10,20". عندما يتم استخدام دالة لتحديد الإزاحة، يتم استدعاؤها بكائن يحتوي على موضع popper، والمرجع، ومستطيلات popper كأول وسيط لها. يتم تمرير عقدة DOM لعنصر التفعيل كوسيط ثانٍ. يجب أن تعيد الدالة مصفوفة تحتوي على رقمين: skidding، distance. لمزيد من المعلومات، راجع مستندات offset الخاصة بـ Popper. |
placement | string, function | 'right' | كيفية تحديد موضع الـ popover: auto, top, bottom, left, right. عند تحديد auto ، سيقوم ديناميكياً بإعادة توجيه الـ popover. عندما يتم استخدام دالة لتحديد الموضع، يتم استدعاؤها مع عقدة DOM للـ popover كأول وسيط وعقدة DOM لعنصر التفعيل كوسيط ثانٍ. يتم تعيين سياق this إلى مثيل الـ popover. |
popperConfig | null, object, function | null | لتغيير تكوين Popper الافتراضي لـ Bootstrap، راجع تكوين Popper. عندما يتم استخدام دالة لإنشاء تكوين Popper، يتم استدعاؤها بكائن يحتوي على تكوين Popper الافتراضي لـ Bootstrap. يساعدك ذلك على استخدام ودمج التكوين الافتراضي مع تكوينك الخاص. يجب أن تعيد الدالة كائن تكوين لـ Popper. |
sanitize | boolean | true | تمكين تطهير المحتوى. إذا كانت القيمة true، فسيتم تطهير خيارات template و content و title. توخَّ الحذر عند تعطيل تطهير المحتوى. راجع ورقة الغش الخاصة بمنع Cross Site Scripting من OWASP لمزيد من المعلومات. الثغرات الأمنية الناتجة فقط عن تعطيل تطهير المحتوى لا تعتبر ضمن نطاق نموذج الأمان الخاص بـ Bootstrap. |
sanitizeFn | null, function | null | تقديم دالة تطهير محتوى بديلة. قد يكون هذا مفيداً إذا كنت تفضل استخدام مكتبة مخصصة لإجراء التطهير. |
selector | string, false | false | إذا تم تقديم محدد (selector)، فسيتم تفويض كائنات popover إلى الأهداف المحددة. من الناحية العملية، يتم استخدام هذا لتطبيق الـ popovers أيضاً على عناصر DOM المضافة ديناميكياً (دعم jQuery.on). راجع هذه المشكلة و مثال توضيحي. ملاحظة: يجب عدم استخدام سمة title كمحدد. |
template | string | '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' | HTML الأساسي المستخدم عند إنشاء الـ popover. سيتم حقن title الخاص بالـ popover في .popover-header. سيتم حقن content الخاص بالـ popover في .popover-body. ستصبح .popover-arrow سهم الـ popover. يجب أن يحتوي عنصر الغلاف الخارجي على الفئة .popover و role="tooltip". |
title | string, element, function | '' | عنوان الـ popover. إذا تم تقديم دالة (function)، فسيتم استدعاؤها مع تعيين مرجع this الخاص بها إلى العنصر المرتبط بالـ popover. |
trigger | string | 'click' | كيفية تفعيل الـ popover: click, hover, focus, manual. يمكنك تمرير عدة مشغلات؛ افصل بينها بمسافة. تشير القيمة 'manual' إلى أن الـ popover سيتم تفعيله برمجياً عبر طرق .popover('show') و .popover('hide') و .popover('toggle') ؛ لا يمكن دمج هذه القيمة مع أي مشغل آخر. سيؤدي استخدام 'hover' بمفرده إلى ظهور popovers لا يمكن تفعيلها عبر لوحة المفاتيح، ويجب استخدامه فقط إذا كانت هناك طرق بديلة لنقل نفس المعلومات لمستخدمي لوحة المفاتيح. |
سمات البيانات للتلميحات الفردية
يمكن تحديد خيارات التلميحات (popovers) الفردية بدلاً من ذلك من خلال استخدام سمات البيانات (data attributes)، كما تم شرحه أعلاه.
استخدام الدالة مع popperConfig
const popover = new bootstrap.Popover(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
الطرق، الأساليب (Methods)
جميع دوال الـ API هي دوال غير متزامنة (asynchronous) وتبدأ عملية انتقال (transition). وهي تعود إلى المستدعي بمجرد بدء عملية الانتقال، ولكن قبل انتهائها. بالإضافة إلى ذلك، سيتم تجاهل أي استدعاء للدالة على مكوّن يمر حالياً بعملية انتقال. تعرف على المزيد في مستندات JavaScript الخاصة بنا.
| الأسلوب | الوصف |
|---|---|
disable | يزيل القدرة على إظهار الـ popover الخاص بالعنصر. لن يكون من الممكن إظهار الـ popover إلا إذا تمت إعادة تفعيله. |
dispose | يخفي ويدمر الـ popover الخاص بالعنصر (يزيل البيانات المخزنة في عنصر DOM). الـ popovers التي تستخدم التفويض (والتي يتم إنشاؤها باستخدام خيار selector) لا يمكن تدميرها بشكل فردي على عناصر التفعيل الفرعية. |
enable | يمنح الـ popover الخاص بالعنصر القدرة على الظهور. الـ popovers مفعلة افتراضياً. |
getInstance | طريقة Static تسمح لك بالحصول على مثيل (instance) الـ popover المرتبط بعنصر DOM. |
getOrCreateInstance | طريقة Static تسمح لك بالحصول على مثيل (instance) الـ popover المرتبط بعنصر DOM، أو إنشاء مثيل جديد في حال لم يتم تهيئته. |
hide | يخفي الـ popover الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إخفاء الـ popover فعلياً (أي قبل وقوع حدث hidden.bs.popover). يعتبر هذا تفعيلاً "يدوياً" للـ popover. |
setContent | يوفر طريقة لتغيير محتوى الـ popover بعد تهيئته. |
show | يظهر الـ popover الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إظهار الـ popover فعلياً (أي قبل وقوع حدث shown.bs.popover). يعتبر هذا تفعيلاً "يدوياً" للـ popover. الـ popovers التي يكون عنوانها ومحتواها بطول صفري لا يتم عرضها أبداً. |
toggle | يبدل حالة الـ popover الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إظهار أو إخفاء الـ popover فعلياً (أي قبل وقوع حدث shown.bs.popover أو hidden.bs.popover). يعتبر هذا تفعيلاً "يدوياً" للـ popover. |
toggleEnabled | يبدل القدرة على إظهار أو إخفاء الـ popover الخاص بالعنصر. |
update | يحدث موضع الـ popover الخاص بالعنصر. |
// getOrCreateInstance example
const popover = bootstrap.Popover.getOrCreateInstance('#example') // Returns a Bootstrap popover instance
// setContent example
popover.setContent({
'.popover-header': 'another title',
'.popover-body': 'another content'
})
تقبل الدالة setContent وسيطاً من نوع object ، حيث يكون كل مفتاح خاصية (property-key) عبارة عن string صالح داخل قالب الـ popover، ويمكن أن تكون كل قيمة خاصية مرتبطة عبارة عن string | element | function | null
الأحداث (Events)
| الحدث | الوصف |
|---|---|
hide.bs.popover | يتم إطلاق هذا الحدث فوراً عند استدعاء طريقة المثيل hide. |
hidden.bs.popover | يتم إطلاق هذا الحدث عندما ينتهي إخفاء الـ popover عن المستخدم (سينتظر اكتمال انتقالات CSS). |
inserted.bs.popover | يتم إطلاق هذا الحدث بعد حدث show.bs.popover عندما يتم إضافة قالب الـ popover إلى الـ DOM. |
show.bs.popover | يتم إطلاق هذا الحدث فوراً عند استدعاء طريقة المثيل show. |
shown.bs.popover | يتم إطلاق هذا الحدث عندما يصبح الـ popover مرئياً للمستخدم (سينتظر اكتمال انتقالات CSS). |
const myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', () => {
// do something...
})