使用Dojo 1.9如何检查元素是否可见?

Jon*_*ell 3 dojo hidden visible

我使用以下代码隐藏或显示字段:

显示元素:

style.set(dojo.byId('fTypeId'), 'display', 'block');
Run Code Online (Sandbox Code Playgroud)

隐藏元素:

style.set(dojo.byId('fTypeId'), 'display', 'none');
Run Code Online (Sandbox Code Playgroud)

如何测试此元素是否显示?

小智 16

检查方法的问题style['display']是您的元素可能仍然被隐藏,即使它的'display'属性未设置为'none'.例如,'visibility'可以是'hidden','height'可以是'0',元素可以被另一个元素遮挡,依此类推.根据我的经验,检查元素的高度而不是显示更为可靠.例如:

var isVisible = document.getElementById("myElem").offsetHeight != 0;
Run Code Online (Sandbox Code Playgroud)

该测试具有额外的好处,它不依赖于任何框架......