停止 JavaScript 弹出窗口激活每个环形图标直到单独单击
Stop JavaScript Popup From Activating Every Looped Icon Until Individually Clicked
我对此很陌生,非常感谢您提供的任何帮助。我创建了一个弹出窗口以在单击图标时显示其他详细信息。我有多张带有图标的卡片,显示与给定卡片有关的不同详细信息。该图标仅在 mouseenter 上可见。弹出窗口正在点击,并在再次点击时关闭。问题是,当单击一个图标时,它会激活所有图标。如果不重新单击关闭,则每张卡片的弹出窗口在鼠标输入时可见。
我试图只激活点击的图标,同时让其他图标保持关闭直到被选中。
这是我的弹出窗口:
<div class="sponsor-index--PopUp" onclick="sponsorPop()">
<button class="sponsor-index--iconBtnMini">
<i id="details" class="fa fa-info-circle fa-2x"></i>
</button>
<span class="sponsor-index--PopUpText">
<span class="sponsor-index--details">
<strong>Name:</strong><br /> @Html.DisplayFor(modelItem => item.Name)<br />
<strong>Dimensions</strong><br /> @Html.DisplayFor(modelItem => item.Photo.OriginalWidth) x
@Html.DisplayFor(modelItem => item.Photo.OriginalHeight) (Width x Height)<br />
<strong>Link:</strong><br /> <a href="@item.Link" target="_blank">@Html.DisplayFor(modelItem =>
item.Link)</a>
</span>
</span>
</div>
这是我的脚本:
<script>
//Pop up for details icon
function sponsorPop() {
var popup = document.getElementsByClassName("sponsor-index--PopUpText");
for (let i = 0; i < popup.length; i += 1) {
popup.item(i).classList.toggle("show");
}
}
</script>
将点击的 DIV 作为参数传递给函数,然后在 DIV 中搜索图标。
div class="sponsor-index--PopUp" onclick="sponsorPop(this)">
<button class="sponsor-index--iconBtnMini">
<i id="details" class="fa fa-info-circle fa-2x"></i>
</button>
<span class="sponsor-index--PopUpText">
<span class="sponsor-index--details">
<strong>Name:</strong><br /> @Html.DisplayFor(modelItem => item.Name)<br />
<strong>Dimensions</strong><br /> @Html.DisplayFor(modelItem => item.Photo.OriginalWidth) x
@Html.DisplayFor(modelItem => item.Photo.OriginalHeight) (Width x Height)<br />
<strong>Link:</strong><br /> <a href="@item.Link" target="_blank">@Html.DisplayFor(modelItem =>
item.Link)</a>
</span>
</span>
</div>
<script>
//Pop up for details icon
function sponsorPop(div) {
var popup = div.querySelector(".sponsor-index--PopUpText");
if (popup) {
popup.classList.toggle("show");
}
}
</script>
我对此很陌生,非常感谢您提供的任何帮助。我创建了一个弹出窗口以在单击图标时显示其他详细信息。我有多张带有图标的卡片,显示与给定卡片有关的不同详细信息。该图标仅在 mouseenter 上可见。弹出窗口正在点击,并在再次点击时关闭。问题是,当单击一个图标时,它会激活所有图标。如果不重新单击关闭,则每张卡片的弹出窗口在鼠标输入时可见。
我试图只激活点击的图标,同时让其他图标保持关闭直到被选中。
这是我的弹出窗口:
<div class="sponsor-index--PopUp" onclick="sponsorPop()">
<button class="sponsor-index--iconBtnMini">
<i id="details" class="fa fa-info-circle fa-2x"></i>
</button>
<span class="sponsor-index--PopUpText">
<span class="sponsor-index--details">
<strong>Name:</strong><br /> @Html.DisplayFor(modelItem => item.Name)<br />
<strong>Dimensions</strong><br /> @Html.DisplayFor(modelItem => item.Photo.OriginalWidth) x
@Html.DisplayFor(modelItem => item.Photo.OriginalHeight) (Width x Height)<br />
<strong>Link:</strong><br /> <a href="@item.Link" target="_blank">@Html.DisplayFor(modelItem =>
item.Link)</a>
</span>
</span>
</div>
这是我的脚本:
<script>
//Pop up for details icon
function sponsorPop() {
var popup = document.getElementsByClassName("sponsor-index--PopUpText");
for (let i = 0; i < popup.length; i += 1) {
popup.item(i).classList.toggle("show");
}
}
</script>
将点击的 DIV 作为参数传递给函数,然后在 DIV 中搜索图标。
div class="sponsor-index--PopUp" onclick="sponsorPop(this)">
<button class="sponsor-index--iconBtnMini">
<i id="details" class="fa fa-info-circle fa-2x"></i>
</button>
<span class="sponsor-index--PopUpText">
<span class="sponsor-index--details">
<strong>Name:</strong><br /> @Html.DisplayFor(modelItem => item.Name)<br />
<strong>Dimensions</strong><br /> @Html.DisplayFor(modelItem => item.Photo.OriginalWidth) x
@Html.DisplayFor(modelItem => item.Photo.OriginalHeight) (Width x Height)<br />
<strong>Link:</strong><br /> <a href="@item.Link" target="_blank">@Html.DisplayFor(modelItem =>
item.Link)</a>
</span>
</span>
</div>
<script>
//Pop up for details icon
function sponsorPop(div) {
var popup = div.querySelector(".sponsor-index--PopUpText");
if (popup) {
popup.classList.toggle("show");
}
}
</script>