jQuery判断对象是否隐藏(display和visibility的区别)

项目中遇到问题,要判断一个元素是否被隐藏了,网上查了很多方法,但都解决不了我的问题,页面上元素明明看不到元素了,但返回值一直是未隐藏。最后浏览器跟踪CSS样式发现,我的项目中元素被隐藏不是设置的hidden属性或者display:none,而是设置的visibility属性。重新查了一下visibility属性,终于解决了问题,成功判断了隐藏,以下为示例代码,其中obj是要判断是否隐藏的元素,供参考:

var visible=($(obj).css("visibility")&&$(obj).css("visibility")=="hidden")?false:true;//判断visibility属性
var display=$(obj).is(':visible');//返回值为true则对象是显示的,false则是隐藏的
if(!visible&&!display){
	alert("该对象是被隐藏的");
}

需要说明的是:

visibility属性其实是隐藏了元素,使其在网页上不可见,但它在页面上所占的空间是保留的,就是看不见但摸得到,用is(“:visible”)时仍然会返回为true;

display:none 和表单的type=“hidden“等属性则是隐藏了元素,也不为其保留物理空间,即该对象在页面上彻底消失,就是看不见也摸不到,用is(“:visible”)时才会返回false;

所以,在判断元素隐藏的时候除了用通俗的is(“:visible”)、.css('display')等方式外,还应该加上对visibility属性的判断,记录在此。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值