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

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


当前回答

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

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 );
};

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

其他回答

公平而言,问题早于这一答复的日期。

而不是批评行动, 而是帮助所有仍在问这个问题的人。

确定是否可见事物的正确方式是咨询你的视觉模型;

如果你不知道这意味着什么 那你就要踏上 探索之旅 这将使你的工作变得不那么困难

以下是模型视图模型结构概览(mvvm)。

knockoutjs 是一个具有约束力的图书馆, 它能让您在不学习整个框架的情况下尝试这些 。

这里有一些刺绣代码 和可能看不到的迪夫。

<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>
<script>
    var vm = {
        IsDivVisible: ko.observable(true);
    }
    vm.toggle = function(data, event) {
      // Get current visibility state for the div
      var x = IsDivVisible();
      // Set it to the opposite
      IsDivVisible(!x);
    }
    ko.applyBinding(vm);
</script>
<div data-bind="visible: IsDivVisible">Peekaboo!</div>
<button data-bind="click: toggle">Toggle the div's visibility</button>
</body>
</html>

注意, 切换函数不咨询 dom 以决定 div 的可见度; 它会查询视图模型 。

如何确定一个混合元素的状态?


您可以使用 : 可见和: 隐藏的选择器来确定元素是否崩溃。

var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

如果您只是根据一个基于其可见度的元素行事, 您可以只包括: 可见或: 隐藏在选择表达式中。 例如 :

 $('#myDiv:visible').animate({left: '+=200px'}, 'slow');

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

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

$( document). ready( 函数 () { 如果 (" checkme: hidden" ) {( ) 长) {主控台. log ('hidden' ) }} } ; & lt; scrip src= "https://ajax.googleapis. com/ajax/ libs/ jquery/ 2.1.1/jquery. min. js; & gt; / strip&gt; / specie; & lt; br&gt; spectie: salmo salal=lt; br&gt; form: lift;/div&gt;

$( 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&gt;