Materializecss Framewok会破坏SELECTS的一些关键属性吗?



问题是这样的:

在我的应用程序中,我需要知道 SELECT 元素在 MATERIALIZE 框架下的 DOM 中是否可见。(请不要将这个问题标记为此处已经讨论过的问题,直到您阅读到最后。

到目前为止,我一直在使用document.getElementById('xx').offsetParent!==null来检查这一点,到目前为止它对我来说工作得很好。

但是,由于我将HTML代码迁移到Materializecss,我的可见性检查功能不再起作用。

这段代码在纯 HTML 中完美运行

<div class='input-field col s12'>        
<select  name='V18' id='V18'   />
<option value='' disabled selected>Select</option>
<option id='V18_1'  value='1'>Choice 1</option>
<option id='V18_2'  value='2'>Choice 2</option>
<option id='V18_3'  value='3'>Choice 3</option>
</select>
</div>
<script>
if
(document.getElementById('V18').offsetParent!==null){  
alert('Select is visible');
}else{
alert('Select is NOT visible');
}
</script>

一旦我在 Materialize css 中初始化了 Selects,通过调用函数 $('select').material_select(),我的可见性检查函数就不再工作了。

我已经测试了这些链接上讨论的所有选项,它们都不适用于 Materialize 选择:

检查元素在 DOM 中是否可见

如何检查元素是否隐藏在jQuery中?

我的,问题是...如何检查 SELECT 元素在具体化框架中是否可见?似乎在初始化选择后,它们以某种方式丢失了一些关键的 Javascript 属性。

有人有同样的问题吗?

我为 materializecss 找到的解决方法是以与弧形按钮和文本不同的方式处理选择,

对于选择,我通过使用以下方法检测可见性:window.getComputedStyle(element)).display === 'none'

对于其余类型的元素,我使用以下方法检测可见性:"document.getElementById(element).offsetParent!==null">

最新更新