Joo*_*nas 9 javascript jquery element hide
我记得在某些时候Opera ( Mostlikely it was Safari instead. )遇到了一个问题,如果你.hide()在元素上使用它,它会在实际隐藏元素之前短暂闪现.
现在,如果你不想忽略那些由于某些原因在他们的浏览器中没有js的人你真的不能使用CSS来设置display: none;该元素来隐藏它然后使用js来淡化它.
我最近注意到这在Opera中不再发生了.所以,我想知道在某些浏览器中是否仍然会发生这种情况,因为我错过了这一点.并且认为这会发生.最安全的方式是什么方式?(当然在这种情况下忽略了css方法.)
JS .hide()
js .addClass('hide')css.hide { display: none; }
或者是其他东西?
编辑:
JS element.style.display = "none"
JS $(element).css({display:"none"})
编辑2:这个问题可能实际上是在Safari中.我也认为较新的jquery版本可能已经解决了这个问题.因为我认为在jquery网站上有一些关于这个问题的bug报告但是我找不到那些bug报告..或者它仍然可能是那个更新的浏览器版本修复它.. 不确定.
所以,当我开始在Safari而不是Opera中搜索这个bug时,我的确发现了更多.虽然我无法肯定地说它从未在歌剧中发生过......
似乎这个问题不再存在,并且使用它是安全的,.hide()但我学到的是,$(element).css({display:"none"})当问题仍然存在时,这确实解决了问题.
你应该总是依赖使用jQuery hide()方法来隐藏任何元素,因为它会处理所有的浏览器.我没有看到任何问题Opera.
即使要显示任何元素,您仍应始终依赖于使用show()方法,原因相同.
例如,tr如果我们说它tr.css("display", "block")在Firefox中不起作用,则显示一个元素,因为它是一个表行,需要指定为.css("display", "table-row").但是,如果你使用tr.show()你不必担心任何浏览器.