如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?

如果元素可见或隐藏, 我如何测试 ?


当前回答

此处还包含一个永久有条件的表达式, 以检查元素的状态, 然后切换它 :

$('someElement').on('click', function(){ $('elementToToggle').is(':visible') ? $('elementToToggle').hide('slow') : $('elementToToggle').show('slow'); });

其他回答

这是内部拼写如何解决这个问题的:

jQuery.expr.pseudos.visible = function( elem ) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};

如果您不使用 jquery, 你可以只是利用这个代码 并把它变成你自己的功能:

function isVisible(elem) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};

只要元素是可见的, 便会返回真实状态 。

ebdiv 应设置为样式=“ display: noone; ” 。 它用于显示和隐藏 :

$(document).ready(function(){
    $("#eb").click(function(){
        $("#ebdiv").toggle();
    });    
});

人们可以简单地使用隐藏或可见属性,例如:

$('element:hidden')
$('element:visible')

或您可以简化相同内容如下。

$(element).is(":visible")

启动 adblucer 使用可见检查的示例 :

$( document). ready( 职能 () { 如果 ($( " ablocker check" ) ) $( " " a blockermsg" ) $( "请禁用 a blockermsg" ) 。 text ("请禁用 a blockercher " ) 。show (; }) ; & lt; 上标 src= "https://ajax.googleapis. com/ajax/ libs/ jquery/ 2. 1.1/jquery. min. js" & gt; < / split> /div> = " a blockercheck" = " a blockergsg" ty= "display: non' gt;/ div>

“ 阻塞检查” 是一个 adblocker 区块的代号。 所以如果它可见, 您可以检测是否打开了阻塞器 。

$( document). ready( { var discrible () { var revision = $ (' retemintion' ). is (': visible' ) ; 如果 (visible) { 备注 (“ 可见”) { 备注 ” ; // code} 其它 { 备警 (“ hidden” ) ;}} } ; & lt; 标注 src= "https://code. jquery. com/jquery-1.10.2. js; & gt;/ statimt>