我有一个关于我的代码的问题。
我$(this).css('opacity')
用来检查元素是否透明。当元素透明时,它应该返回 0。
但是,if( $(this).css('opacity') !== 0 )
当它返回 0 时执行。知道为什么会发生这种情况吗?
提前致谢!
我的代码在这里:
我有一个关于我的代码的问题。
我$(this).css('opacity')
用来检查元素是否透明。当元素透明时,它应该返回 0。
但是,if( $(this).css('opacity') !== 0 )
当它返回 0 时执行。知道为什么会发生这种情况吗?
提前致谢!
我的代码在这里:
这是因为 CSS 值总是以字符串形式返回(与height
jQuerywidth
方法不同,它们返回一个数字)。
试试这个测试是否适合你:
if( parseFloat($(this).css('opacity')) !== 0 )
或简单地使用弱(类型强制)不等式:
if( $(this).css('opacity') != 0 )
CSS 值以字符串形式返回。像这样改变条件。
if( $(this).css('opacity') !== "0" )
或者
if(parseFloat($(this).css('opacity'))!==0)
原因是条件确实为真。.css('opacity') 返回一个字符串;因此,在您的情况下,它将返回“0”,这当然与数字 0 不同,因为您使用的是不完全相同的运算符 (!==)。
您可能应该使用不等于运算符 (!=)。
'0' !== 0 --> 真 '0' != 0 --> 假