【发布时间】:2020-10-30 20:44:05
【问题描述】:
请看一下我在下面创建的示例。
当您单击该按钮时,<g> 会切换,绿点会显示或隐藏。
奇怪的是,is(':visible') 总是返回 true,即使 visibility 设置为 hidden。
为什么会这样?
console.log('Jquery running...')
$("button").click( () => {
var prev = $("g").attr('visibility');
if (prev === 'hidden') {
$('g').attr('visibility', 'visible');
} else {
$('g').attr('visibility', 'hidden');
}
console.log('element is visible:', el.is(':visible'));
});
var el = $('g');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>My Example</p>
<svg width="20" height="30">
<g>
<circle cx="10" cy="10" r="10" fill="green"></circle>
</g>
</svg>
<button> Toggle Dot </button>
更新
我之前也尝试过将display 设置为none,但也没有用
【问题讨论】:
-
@RobbyCornelissen 我已更新代码以使用
visibility。同样的问题
标签: html jquery css svg display