تلميحات الأدوات (Tooltips)
مستندات وأمثلة لإضافة تلميحات أدوات (tooltips) مخصصة في الـ Bootstrap باستخدام الـ CSS والـ JavaScript، مع استخدام CSS3 للرسوم المتحركة و data-bs-attributes لتخزين العناوين محلياً.
نظرة عامة
أشياء يجب معرفتها عند استخدام إضافة تلميحات الأدوات (tooltip plugin):
- تعتمد تلميحات الأدوات (Tooltips) على مكتبة الطرف الثالث Popper لتحديد الموضع. يجب تضمين popper.min.js قبل
bootstrap.js، أو استخدامbootstrap.bundle.min.jsالذي يحتوي على Popper. - تلميحات الأدوات (Tooltips) اختيارية لأسباب تتعلق بالأداء، لذا يجب عليك تهيئتها بنفسك.
- تلميحات الأدوات (Tooltips) ذات العناوين الفارغة لا يتم عرضها أبداً.
- حدد
container:'body'لتجنب مشاكل العرض في المكونات الأكثر تعقيداً (مثل مجموعات الإدخال، مجموعات الأزرار، إلخ). - لن يعمل تشغيل تلميحات الأدوات (tooltips) على العناصر المخفية.
- تلميحات الأدوات (Tooltips) للعناصر ذات الفئة
.disabledأو سمةdisabledيجب أن يتم تشغيلها على عنصر غلاف (wrapper element). - عند تشغيلها من روابط تشعبية تمتد على عدة أسطر، ستكون تلميحات الأدوات (tooltips) متمركزة. استخدم
white-space: nowrap;على عناصر<a>الخاصة بك لتجنب هذا السلوك. - يجب إخفاء تلميحات الأدوات (Tooltips) قبل إزالة العناصر المقابلة لها من الـ DOM.
- يمكن تشغيل تلميحات الأدوات (Tooltips) بفضل عنصر موجود داخل shadow DOM.
هل استوعبت كل ذلك؟ رائع، دعنا نرى كيف تعمل من خلال بعض الأمثلة.
بشكل افتراضي، يستخدم هذا المكوّن أداة تنقية المحتوى (content sanitizer) المدمجة، والتي تقوم بإزالة أي عناصر HTML غير مسموح بها صراحةً. راجع قسم الـ sanitizer في مستندات JavaScript الخاصة بنا لمزيد من التفاصيل.
تعتمد تأثيرات الرسوم المتحركة لهذا المكوّن على استعلام الوسائط (media query) الخاص بـ prefers-reduced-motion. راجع قسم تقليل الحركة في مستندات إمكانية الوصول لدينا.
أمثلة
تفعيل تلميحات الأدوات
كما ذكرنا أعلاه، يجب عليك تهيئة تلميحات الأدوات قبل أن تتمكن من استخدامها. إحدى الطرق لتهيئة جميع تلميحات الأدوات في الصفحة هي تحديدها من خلال سمة data-bs-toggle الخاصة بها، كما يلي:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
تلميحات الأدوات على الروابط
مرر مؤشر الماوس فوق الروابط أدناه لرؤية تلميحات الأدوات:
Placeholder text to demonstrate some inline links with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of real text. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you’ve now seen how these tooltips on links can work in practice, once you use them on your own site or project.
<p class="muted">Placeholder text to demonstrate some <a href="#" data-bs-toggle="tooltip" data-bs-title="Default tooltip">inline links</a> with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of <a href="#" data-bs-toggle="tooltip" data-bs-title="Another tooltip">real text</a>. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you’ve now seen how <a href="#" data-bs-toggle="tooltip" data-bs-title="Another one here too">these tooltips on links</a> can work in practice, once you use them on <a href="#" data-bs-toggle="tooltip" data-bs-title="The last tip!">your own</a> site or project.</p> يمكنك استخدام title أو data-bs-title في الـ HTML الخاص بك. عند استخدام title، سيقوم Popper باستبداله تلقائياً بـ data-bs-title عند رندرة العنصر.
تلميحات أدوات مخصصة
تمت الإضافة في الإصدار v5.2.0يمكنك تخصيص مظهر تلميحات الأدوات باستخدام متغيرات CSS. نقوم بتعيين فئة (class) مخصصة باستخدام data-bs-custom-class="custom-tooltip" لتحديد نطاق المظهر المخصص الخاص بنا واستخدامها لتجاوز متغير CSS محلي.
.custom-tooltip {
--bs-tooltip-bg: var(--bd-violet-bg);
--bs-tooltip-color: var(--bs-white);
}
<button type="button" class="btn btn-secondary"
data-bs-toggle="tooltip" data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="This top tooltip is themed via CSS variables.">
Custom tooltip
</button> الإتجاهات
مرر مؤشر الماوس فوق الأزرار أدناه لرؤية اتجاهات تلميحات الأدوات الأربعة: الأعلى، واليمين، والأسفل، واليسار. يتم عكس الاتجاهات عند استخدام الـ Bootstrap في وضع RTL.
sadf
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-title="Tooltip on left">
Tooltip on left
</button>
ومع إضافة HTML المخصص:
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
بإستخدام الـ (SVG):
الـ (CSS)
المتغيرات (Variables)
تمت الإضافة في الإصدار v5.2.0كجزء من نهج الـ Bootstrap المتطور في استخدام متغيرات CSS، تستخدم تلميحات الأدوات الآن متغيرات CSS محلية على .tooltip لتعزيز التخصيص في الوقت الفعلي. يتم تعيين قيم متغيرات CSS عبر الـ Sass، لذا فإن التخصيص عبر الـ Sass لا يزال مدعوماً أيضاً.
--#{$prefix}tooltip-zindex: #{$zindex-tooltip};
--#{$prefix}tooltip-max-width: #{$tooltip-max-width};
--#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
--#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
--#{$prefix}tooltip-margin: #{$tooltip-margin};
@include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
--#{$prefix}tooltip-color: #{$tooltip-color};
--#{$prefix}tooltip-bg: #{$tooltip-bg};
--#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
--#{$prefix}tooltip-opacity: #{$tooltip-opacity};
--#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
--#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
متغيرات الـ (Sass)
$tooltip-font-size: $font-size-sm;
$tooltip-max-width: 200px;
$tooltip-color: var(--#{$prefix}body-bg);
$tooltip-bg: var(--#{$prefix}emphasis-color);
$tooltip-border-radius: var(--#{$prefix}border-radius);
$tooltip-opacity: .9;
$tooltip-padding-y: $spacer * .25;
$tooltip-padding-x: $spacer * .5;
$tooltip-margin: null; // TODO: remove this in v6
$tooltip-arrow-width: .8rem;
$tooltip-arrow-height: .4rem;
// fusv-disable
$tooltip-arrow-color: null; // Deprecated in Bootstrap 5.2.0 for CSS variables
// fusv-enable
الإستخدام
تقوم إضافة تلميحات الأدوات (tooltip plugin) بتوليد المحتوى والتنسيق عند الطلب، وتضع تلميحات الأدوات افتراضياً بعد العنصر الذي يقوم بتشغيلها. قم بتشغيل تلميح الأداة عبر الـ JavaScript:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
تحاول تلميحات الأدوات (Tooltips) تلقائياً تغيير مواضعها عندما يكون الحاوية الأب لديها overflow: auto أو overflow: scroll ، ولكنها تظل محتفظة بتحديد الموضع الأصلي. قم بتعيين خيار boundary option (لمعدل flip باستخدام خيار popperConfig) إلى أي HTMLElement لتجاوز القيمة الافتراضية، 'clippingParents'، مثل document.body:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
التوصيف (Markup)
كل ما يتطلبه الـ Markup لتلميح الأداة هو مجرد سمة data و title على عنصر الـ HTML الذي ترغب في إضافة تلميح أداة له. الـ Markup الذي يتم توليده لتلميح الأداة بسيط للغاية، على الرغم من أنه يتطلب تحديد موضع (افتراضياً، يتم تعيينه إلى top بواسطة الإضافة plugin).
حافظ على إمكانية وصول مستخدمي لوحة المفاتيح والتقنيات المساعدة إلى تلميحات الأدوات (Tooltips) من خلال إضافتها فقط إلى عناصر HTML التي تكون تقليدياً قابلة للتركيز عبر لوحة المفاتيح وتفاعلية (مثل الروابط أو عناصر التحكم في النماذج). بينما يمكن جعل عناصر HTML الأخرى قابلة للتركيز عن طريق إضافة "tabindex="0، فإن هذا قد يؤدي إلى إنشاء توقفات تبويب (tab stops) مزعجة ومربكة على العناصر غير التفاعلية لمستخدمي لوحة المفاتيح، ومعظم التقنيات المساعدة حالياً لا تعلن عن تلميحات الأدوات في هذه الحالة. بالإضافة إلى ذلك، لا تعتمد فقط على hover كمحفز لتلميحات الأدوات الخاصة بك لأن هذا سيجعل من المستحيل تشغيلها لمستخدمي لوحة المفاتيح.
<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" data-bs-title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-auto" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
العناصر المعطلة
العناصر التي تحتوي على سمة disabled ليست تفاعلية، مما يعني أن المستخدمين لا يمكنهم التركيز عليها، أو تمرير مؤشر الماوس فوقها، أو النقر عليها لتشغيل تلميح الأداة (tooltip) (أو popover). كحل بديل، ستحتاج إلى تشغيل تلميح الأداة من عنصر غلاف <div> أو <span>، ويفضل جعله قابلاً للتركيز عبر لوحة المفاتيح باستخدام tabindex="0".
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-title="Disabled tooltip">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span> خيارات
بما أنه يمكن تمرير الخيارات عبر سمات البيانات (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 | القيمة الافتراضية | كائن يحتوي على الوسوم والسمات المسموح بها. سيتم إزالة تلك التي لم يتم السماح بها صراحةً بواسطة منظف المحتوى (content sanitizer). توخَّ الحذر عند الإضافة إلى هذه القائمة. راجع ورقة غش منع البرمجة العابرة للمواقع من OWASP لمزيد من المعلومات. |
animation | boolean | true | تطبيق انتقال تلاشي CSS على تلميح الأداة. |
boundary | string, element | 'clippingParents' | حدود قيد التجاوز (Overflow) لتلميح الأداة (ينطبق فقط على معدل preventOverflow الخاص بـ Popper). افتراضياً، تكون القيمة 'clippingParents' ويمكن أن تقبل مرجع HTMLElement (عبر JavaScript فقط). لمزيد من المعلومات، راجع مستندات detectOverflow الخاصة بـ Popper. |
container | string, element, false | false | يلحق تلميح الأداة بعنصر محدد. مثال: container: 'body'. هذا الخيار مفيد بشكل خاص لأنه يسمح لك بوضع تلميح الأداة في تدفق المستند بالقرب من العنصر المسبب - مما يمنع تلميح الأداة من الابتعاد عن العنصر المسبب أثناء تغيير حجم النافذة. |
customClass | string, function | '' | إضافة فئات (classes) إلى تلميح الأداة عند إظهاره. لاحظ أن هذه الفئات ستضاف بالإضافة إلى أي فئات محددة في القالب. لإضافة فئات متعددة، افصل بينها بمسافات: 'class-1 class-2'. يمكنك أيضاً تمرير دالة (function) يجب أن تعيد سلسلة نصية واحدة تحتوي على أسماء فئات إضافية. |
delay | number, object | 0 | تأخير إظهار وإخفاء تلميح الأداة (ملي ثانية)—لا ينطبق على نوع التشغيل اليدوي. إذا تم تقديم رقم، يتم تطبيق التأخير على كل من الإخفاء والإظهار. هيكل الكائن هو: delay: { "show": 500, "hide": 100 }. |
fallbackPlacements | array | ['top', 'right', 'bottom', 'left'] | تحديد مواضع بديلة من خلال تقديم قائمة بالمواضع في مصفوفة (حسب ترتيب التفضيل). لمزيد من المعلومات، راجع مستندات السلوك الخاصة بـ Popper. |
html | boolean | false | السماح بـ HTML في تلميح الأداة. إذا كانت القيمة true، سيتم عرض وسوم HTML في خاصية title الخاصة بتلميح الأداة. إذا كانت false، سيتم استخدام خاصية innerText لإدراج المحتوى في الـ DOM. يفضل استخدام النصوص عند التعامل مع المدخلات التي ينشئها المستخدم لمنع هجمات XSS. |
offset | array, string, function | [0, 6] | إزاحة تلميح الأداة بالنسبة لهدفه. يمكنك تمرير سلسلة نصية في سمات البيانات بقيم مفصولة بفاصلة مثل: data-bs-offset="10,20". عندما يتم استخدام دالة لتحديد الإزاحة، يتم استدعاؤها بكائن يحتوي على موضع popper، والمرجع، ومستطيلات popper كأول وسيط. يتم تمرير عقدة DOM للعنصر المسبب كوسيط ثانٍ. يجب أن تعيد الدالة مصفوفة تحتوي على رقمين: skidding, distance. لمزيد من المعلومات، راجع مستندات offset الخاصة بـ Popper. |
placement | string, function | 'top' | كيفية تحديد موضع تلميح الأداة: auto, top, bottom, left, right. عندما يتم تحديد auto سيقوم بتغيير اتجاه تلميح الأداة ديناميكياً. عندما يتم استخدام دالة لتحديد الموضع، يتم استدعاؤها بعقدة DOM لتلميح الأداة كوسيط أول وعقدة DOM للعنصر المسبب كوسيط ثانٍ. يتم تعيين سياق this إلى مثيل تلميح الأداة. |
popperConfig | null, object, function | null | لتغيير تكوين Popper الافتراضي في Bootstrap، راجع تكوين Popper. عندما يتم استخدام دالة لإنشاء تكوين Popper، يتم استدعاؤها بكائن يحتوي على تكوين Popper الافتراضي لـ Bootstrap. يساعدك ذلك في استخدام ودمج التكوين الافتراضي مع تكوينك الخاص. يجب أن تعيد الدالة كائن تكوين لـ Popper. |
sanitize | boolean | true | تفعيل تطهير المحتوى (content sanitization). إذا كانت القيمة true، سيتم تطهير خيارات template و content و title. توخَّ الحذر عند تعطيل تطهير المحتوى. راجع ورقة غش منع البرمجة العابرة للمواقع من OWASP لمزيد من المعلومات. الثغرات الأمنية الناتجة فقط عن تعطيل تطهير المحتوى لا تعتبر ضمن نطاق نموذج الأمان الخاص بـ Bootstrap. |
sanitizeFn | null, function | null | توفير دالة تطهير محتوى بديلة. قد يكون هذا مفيداً إذا كنت تفضل استخدام مكتبة مخصصة لإجراء التطهير. |
selector | string, false | false | إذا تم تقديم محدد (selector)، سيتم تفويض كائنات تلميح الأداة إلى الأهداف المحددة. عملياً، يُستخدم هذا أيضاً لتطبيق تلميحات الأدوات على عناصر DOM المضافة ديناميكياً (دعم jQuery.on). راجع هذه المشكلة و مثال توضيحي. ملاحظة: يجب عدم استخدام سمة title كمحدد. |
template | string | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' | HTML الأساسي المستخدم عند إنشاء تلميح الأداة. سيتم حقن title الخاص بتلميح الأداة في .tooltip-inner. ستصبح .tooltip-arrow سهماً لتلميح الأداة. يجب أن يحتوي عنصر الغلاف الخارجي على الفئة .tooltip و role="tooltip". |
title | string, element, function | '' | عنوان تلميح الأداة. إذا تم تقديم دالة، سيتم استدعاؤها مع تعيين مرجع this الخاص بها إلى العنصر المرتبط به تلميح الأداة. |
trigger | string | 'hover focus' | كيفية تشغيل تلميح الأداة: click, hover, focus, manual. يمكنك تمرير عدة مشغلات؛ افصل بينها بمسافة. تشير القيمة 'manual' إلى أن تلميح الأداة سيتم تشغيله برمجياً عبر أساليب (methods) .tooltip('show') و .tooltip('hide') و .tooltip('toggle')؛ ولا يمكن دمج هذه القيمة مع أي مشغل آخر. استخدام 'hover' بمفرده سيؤدي إلى تلميحات أدوات لا يمكن تشغيلها عبر لوحة المفاتيح، ويجب استخدامه فقط إذا كانت هناك طرق بديلة لتوصيل نفس المعلومات لمستخدمي لوحة المفاتيح. |
سمات البيانات لتلميحات أدوات فردية
يمكن بدلاً من ذلك تحديد خيارات تلميحات الأدوات الفردية من خلال استخدام سمات البيانات، كما تم شرحه أعلاه.
استخدام الدالة (function) مع popperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
الطرق، الأساليب (Methods)
جميع دوال الـ API هي دوال غير متزامنة (asynchronous) وتبدأ عملية انتقال (transition). وهي تعود إلى المستدعي بمجرد بدء عملية الانتقال، ولكن قبل انتهائها. بالإضافة إلى ذلك، سيتم تجاهل أي استدعاء للدالة على مكوّن يمر حالياً بعملية انتقال. تعرف على المزيد في مستندات JavaScript الخاصة بنا.
| الأسلوب | الوصف |
|---|---|
disable | يزيل القدرة على إظهار تلميح الأداة الخاص بالعنصر. لن يكون من الممكن إظهار تلميح الأداة إلا إذا تمت إعادة تفعيله. |
dispose | يخفي ويدمر تلميح الأداة الخاص بالعنصر (يزيل البيانات المخزنة في عنصر الـ DOM). تلميحات الأدوات التي تستخدم التفويض (والتي يتم إنشاؤها باستخدام خيار selector) لا يمكن تدميرها بشكل فردي على عناصر التشغيل التابعة. |
enable | يمنح تلميح الأداة الخاص بالعنصر القدرة على الظهور. تكون تلميحات الأدوات مفعلة بشكل افتراضي. |
getInstance | أسلوب (method) ساكن (Static) يسمح لك بالحصول على مثيل تلميح الأداة المرتبط بعنصر DOM. |
getOrCreateInstance | أسلوب (method) ساكن (Static) يسمح لك بالحصول على مثيل تلميح الأداة المرتبط بعنصر DOM، أو إنشاء مثيل جديد في حال لم يتم تهيئته. |
hide | يخفي تلميح الأداة الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إخفاء تلميح الأداة فعلياً (أي قبل وقوع حدث hidden.bs.tooltip). يعتبر هذا تشغيلاً "يدوياً" لتلميح الأداة. |
setContent | يوفر طريقة لتغيير محتوى تلميح الأداة بعد تهيئته. |
show | يظهر تلميح الأداة الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إظهار تلميح الأداة فعلياً (أي قبل وقوع حدث shown.bs.tooltip). يعتبر هذا تشغيلاً "يدوياً" لتلميح الأداة. تلميحات الأدوات ذات العناوين الفارغة لا يتم عرضها أبداً. |
toggle | يبدل حالة ظهور تلميح الأداة الخاص بالعنصر. يعود إلى المستدعي قبل أن يتم إظهار أو إخفاء تلميح الأداة فعلياً (أي قبل وقوع حدث shown.bs.tooltip أو hidden.bs.tooltip). يعتبر هذا تشغيلاً "يدوياً" لتلميح الأداة. |
toggleEnabled | يبدل القدرة على إظهار أو إخفاء تلميح الأداة الخاص بالعنصر. |
update | يحدث موقع تلميح الأداة الخاص بالعنصر. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
تقبل الدالة setContent وسيطاً من نوع object، حيث يكون كل مفتاح خاصية (property-key) عبارة عن محدد string صالح داخل قالب تلميح الأداة، ويمكن أن تكون كل قيمة خاصية مرتبطة بها من نوع string | element | function | null
الأحداث (Events)
| الحدث | الوصف |
|---|---|
hide.bs.tooltip | يتم إطلاق هذا الحدث فور استدعاء أسلوب (method) الـ hide الخاص بالمثيل. |
hidden.bs.tooltip | يتم إطلاق هذا الحدث عندما ينتهي إخفاء تلميح الأداة عن المستخدم (سينتظر اكتمال انتقالات CSS). |
inserted.bs.tooltip | يتم إطلاق هذا الحدث بعد حدث show.bs.tooltip عندما يتم إضافة قالب تلميح الأداة إلى الـ DOM. |
show.bs.tooltip | يتم إطلاق هذا الحدث فور استدعاء أسلوب (method) الـ show الخاص بالمثيل. |
shown.bs.tooltip | يتم إطلاق هذا الحدث عندما يصبح تلميح الأداة مرئياً للمستخدم (سينتظر اكتمال انتقالات CSS). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()