如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
当前回答
if($('#id_element').is(":visible")){
alert('shown');
}else{
alert('hidden');
}
其他回答
使用任何可见选择器或隐藏选择器检查粘度:
: 可见选择器 - jquery (“ : 可见”) 使用 : 隐藏选择器 - jquery (“ : 隐藏” )
使用.toggle () - 显示和隐藏元素
{{{{{{{{{{{{{{{}检查元素是否隐藏,并返回真实的虚假控制台.log($(“元素”)){{{{{{}}}检查元素是否可见,并返回真实的虚假控制台.log($(“元素”){{}}}{($(“元素”){}}}如果($(“元素”){}}}{{}}{{{}{{}}{{{{{}}可识别性{}}}}}($(“glegle}}}}}lock(funct}}}。
当对 : hidden 选择器在 jquery 中测试元素时,应考虑一个绝对定位元素可以被确认为隐藏,尽管其子元素是可见的。
虽然仔细看一看拼图文件能提供相关资料:
由于以下几个原因可视为隐藏要素:[.]其宽度和高度明确定为0。 [.]
因此,这实际上对框模型和元素的计算样式是有道理的。即使宽度和高度没有被明确设定为0,它们也可以被隐含地设定为0。
以下列实例为例:
控制台. log( $ ('. foo') ) ; // true control. org ($ ('.bar') ) ; / foo { 位置 : 绝对 : left: 10px; 顶层 : ff00; 位置 : 绝对 : 10px; 顶层 : 10px; 宽度 : 20px; 高度 20px; 底层 : 0000ff; } < 上层 src=" https://ajax.gogleapis.com/ahax/libs/jquery/ 2. 1.1/jquery.min.js. > & & lt;/ statict> & & & div>
jquery 3. x 的更新:
与 jquery 3 相比, 所述的行为将改变元素, 如果有任何布局框, 包括宽度为零和(或)高度的布局框, 则将被视为可见的元素 。
3 0.0 - 阿尔法1: jdidfidd with jquery 3. 0.0 - 阿尔法1:
http://jsfiddle.net/pM2q3/7/
同样的javascript代码 将会有这个输出 :
console.log($('.foo').is(':hidden')); // false
console.log($('.bar').is(':hidden')); // false
这对我来说是有效的,我用表演和隐藏来使我的 div 隐藏/可见:
if( $(this).css('display') == 'none' ){
/* your code goes here */
} else {
/* alternate logic */
}
通常当检查某物是否可见时, 您会立即直接去做其他事情。 jquery 绑链很容易做到 。
所以,如果您有一个选择器, 并且您想要在它上执行某些动作, 只有当它为可见或隐藏时, 您可以使用过滤器 (“ : 可见 ” ) 或过滤器 (“ 隐藏 ” ) , 然后将它与您想要采取的行动连接起来 。
而不是这样声明:
if ($('#btnUpdate').is(":visible"))
{
$('#btnUpdate').animate({ width: "toggle" }); // Hide button
}
或效率更高,但更丑陋:
var button = $('#btnUpdate');
if (button.is(":visible"))
{
button.animate({ width: "toggle" }); // Hide button
}
您可以在一条线内完成全部任务:
$('#btnUpdate').filter(":visible").animate({ width: "toggle" });
由于问题只涉及一个要素,本守则可能更适合:
// Checks CSS content for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
它与twern的建议相同,但适用于一个单一要素;它与jquery faq中推荐的算法相符。
我们用 jquery's is () 来检查选中元素与其它元素、 选择器或任何 jquery 对象的对比。 此方法沿 dom 元素绕行查找匹配, 满足已传递参数 。 如果匹配, 返回为真, 否则返回为假 。