【发布时间】:2016-11-20 21:50:42
【问题描述】:
这可能看起来微不足道,但我遇到了一个小问题。我的页面上有 SVG 图标,当悬停在上面时,应该会更改状态以显示隐藏的 div。我得到了第一个图标来执行此操作,但随后的图标不起作用。我已将问题缩小到 jQuery,因为 css(光标:指针;)仍然适用于每个图标,但应该显示的隐藏 div 不适用。我的问题是这样的,我可以有多个这样的 jQuery 语句
$(".div-g").hover(
function() {
$(this).find(".div-hidden").css("display","block");
},
function() {
$(this).find(".div-hidden").css("display","none");
}
);
对于我的每个 SVG。例如,我会使用相同的语句,但只需将“div”替换为“div1”等等。我不明白为什么不这样做,但我不确定为什么它不像第一个图标那样简单。为清楚起见,我的每个 SVG 都有如下所示的类
<rect style="display:none;" class="div-hidden div-hidden-rect" width="34.02" height="34.02"/>
<text style="display:none;" class="div-hidden" x="8" y="10">
看起来像这样的css
.div-g:hover {
text-align: center;
cursor: pointer;
}
.div-hidden {
text-anchor: middle;
text-align: center;
font-size: .5rem;
display: inline-block;
position: center;
}
.div-hidden-rect {
fill: $whiteblue;
opacity: .96;
}
其中 .div-g 代表 SVG 。那么,我的问题是使用具有不同选择器的相同 jQuery 语句,还是我没有看到的问题?
【问题讨论】:
-
“我可以在同一个页面上使用相同的 jQuery 语句和不同的选择器吗?” 简短的回答是肯定的。但是由于您没有展示任何“div1”元素可能是什么样子的示例,因此很难向您展示具体示例。
-
您基本上是在询问您是否可以在同一页面上包含多行代码。是的你可以。但目前尚不清楚您要描述的问题是什么。我怀疑您的诊断有误,您是在向我们询问错误而不是问题的根源。
-
对不起,我不清楚。我的“div1”(这只是我将为每个更改的前缀,因此 div1-g、div1-hidden、div1-hiddenr-rect)是一个矩形,与 SVG 图像大小相同。
-
悬停时,我试图将我的 SVG 图像更改为一个简单的矩形。我让它与我的一个 SVG 图标一起工作,但我还有很多不会改变。
-
@hoolakoola:您能否提供一个最小且完整的问题示例来演示?当每个元素都应该做同样的事情时,似乎不必多次编写相同的代码。