gpt4 book ai didi

jquery - 单击另一个元素时显示工具提示

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:42 25 4
gpt4 key购买 nike

我有一个在点击时显示的工具提示,但是我希望工具提示在用户点击具有相同 ID 的 div 时显示。这是因为我会有他们可以点击的问题,这将显示他们可以在页面上执行此操作的位置。

我不确定这是否可以通过工具提示实现,或者是否有更好的方法。

$("#tooltip1").on('click', function() {
$("button #tooltip1").click();
});
[data-tooltip] {
position: relative;
z-index: 2;
cursor: pointer;
}


/* Hide the tooltip content by default */

[data-tooltip]:before,
[data-tooltip]:after {
visibility: hidden;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
pointer-events: none;
}


/* Position tooltip above the element */

[data-tooltip]:before {
position: absolute;
bottom: 150%;
left: 50%;
margin-bottom: 5px;
margin-left: -80px;
width: 160px;
content: attr(data-tooltip);
}


/* Triangle hack to make tooltip look like a speech bubble */

[data-tooltip]:after {
position: absolute;
bottom: 150%;
left: 50%;
margin-left: -5px;
width: 0;
content: " ";
font-size: 0;
line-height: 0;
}


/* Show tooltip content on hover */

[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
visibility: visible;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="demo">
<p><button id="tooltip1" data-tooltip="I’m the tooltip text.">I’m a button with a tooltip</button></p>
<p><button id="tooltip2" data-tooltip="I’m the tooltip text.">I’m a button with a tooltip</button></p>
</div>

<div id="tooltip1">
Show tooltip 1
</div>

<div id="tooltip2">
Show tooltip 2
</div>

最佳答案

首先,您在按钮和无效的 div 上重复了相同的 id。我建议将 id 留在 div 上,但在按钮上使用一个通用类,您可以在 jQuery 中将事件处理程序与 一起 Hook data 属性,用于存储要定位的单个 div。

然后您可以通过切换它们的类来更改它们的可见性以及使用:hover来隐藏/显示工具提示,如下所示:

[data-tooltip]:hover:before,
[data-tooltip]:hover:after,
[data-tooltip].show:before,
[data-tooltip].show:after {
visibility: visible;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}

然后您可以在 click 处理程序中使用 toggleClass():

$(".toggle-tip").on('click', function() {
$('#' + $(this).data('id')).toggleClass('show');
});

$(".toggle-tip").on('click', function() {
$('#' + $(this).data('id')).toggleClass('show');
});
[data-tooltip] {
position: relative;
z-index: 2;
cursor: pointer;
}


/* Hide the tooltip content by default */

[data-tooltip]:before,
[data-tooltip]:after {
visibility: hidden;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
pointer-events: none;
}


/* Position tooltip above the element */

[data-tooltip]:before {
position: absolute;
bottom: 150%;
left: 50%;
margin-bottom: 5px;
margin-left: -80px;
width: 160px;
content: attr(data-tooltip);
}


/* Triangle hack to make tooltip look like a speech bubble */

[data-tooltip]:after {
position: absolute;
bottom: 150%;
left: 50%;
margin-left: -5px;
width: 0;
content: " ";
font-size: 0;
line-height: 0;
}


/* Show tooltip content on hover */

[data-tooltip]:hover:before,
[data-tooltip]:hover:after,
[data-tooltip].show:before,
[data-tooltip].show:after {
visibility: visible;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="demo">
<p><button id="tooltip1" data-tooltip="I’m the tooltip text.">I’m a button with a tooltip</button></p>
<p><button id="tooltip2" data-tooltip="I’m the tooltip text.">I’m a button with a tooltip</button></p>
</div>

<div class="toggle-tip" data-id="tooltip1">
Show tooltip 1
</div>

<div class="toggle-tip" data-id="tooltip2">
Show tooltip 2
</div>

关于jquery - 单击另一个元素时显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56949244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com