我创建了两个演示:
演示1:http://jsfiddle.net/DqvTa/7/
演示2:http://jsfiddle.net/DqvTa/8/
演示几乎完全相同。唯一的区别是我在演示1中设置了#span { display:none; }
,在演示2中设置了span { display:none; }
。
有人可以解释为什么SPAN元素 - 在演示2中 - 成为块级元素吗?
我的假设是(在show()
期间)jQuery在内部创建一个SPAN元素来检查它是否自然是内联或块级元素。但是因为我在演示2中将所有SPAN设置为display:none
,所以jQuery无法确定它。
顺便提一下这张票:http://bugs.jquery.com/ticket/8099
答案 0 :(得分:2)
这是一个错误,对吧。
但您可以$('span').css('display', 'inline');
而不是$('span').show();
答案 1 :(得分:1)
这是因为.show()就像一个显示块,只是显示属性恢复到最初的状态。
jQuery在你用show修改的节点中使用一个名为olddisplay的属性(你可以用FireQuery看到它),如果你修改了span的盒子模型,(而不是#span)jquery不会认识到正确的旧显示模式节点
答案 2 :(得分:0)
此问题已被确定为错误。门票在这里:
http://bugs.jquery.com/ticket/8099