本文介绍如何使用 jQuery 实现当多个输入框中的任何一个获得焦点时,始终保持一个可折叠的 div 展开,并在失去焦点时关闭该 div。核心思路是利用 focus 和 focusout 事件,配合 collapse 方法控制 div 的显示与隐藏。
Bootstrap 的 Collapse 组件允许您通过点击或其他方式切换内容的可见性。 默认情况下,点击带有 data-toggle="collapse" 和 data-target="#yourCollapseID" 属性的元素会切换与 #yourCollapseID 关联的 div 的可见性。 然而,如果希望根据输入框的焦点状态来控制 Collapse 组件,则需要使用 JavaScript (特别是 jQuery) 来监听 focus 和 focusout 事件,并相应地调用 collapse('show') 和 collapse('hide') 方法。
HTML 结构: 确保您的 HTML 结构包含触发器输入框和一个可折叠的 div。 每个输入框都应具有一个共同的 class,以便于 jQuery 选择器使用。
= $ Calc phys% using effective age of /Lifespan of
| Physical | External | Functional | ||
|---|---|---|---|---|
| % of Cost New | ||||
| Lump Sum |
jQuery 代码: 使用 jQuery 监听输入框的 focus 和 focusout 事件。
$(function () {
$('.toggleDepDiv').on('focus', function () {
$('#exampleModal').collapse('sho
w');
});
$('.toggleDepDiv').focusout(function (e) {
// 检查焦点是否转移到另一个 .toggleDepDiv 元素
if (!$(e.relatedTarget).hasClass('toggleDepDiv')) {
$('#exampleModal').collapse('hide');
}
});
});通过使用 jQuery 监听 focus 和 focusout 事件,并结合 Bootstrap Collapse 组件的 show 和 hide 方法,可以实现根据输入框的焦点状态动态控制 Collapse 组件的显示和隐藏。 这种方法可以提高用户体验,并使表单更加易于使用。