SPAN元素在jQuery的show()上成为块级别

我创建了两个演示:

演示1:http://jsfiddle.net/DqvTa/7/
演示2:http://jsfiddle.net/DqvTa/8/

演示几乎完全相同。 唯一的区别是我设置了#span { display:none; } #span { display:none; }在演示1和span { display:none; } span { display:none; }在演示2。

有人能解释为什么SPAN元素 - 在演示2中 - 成为块级元素?


我的假设是(在show()期间)jQuery在内部创建一个SPAN元素来检查它是否自然是内联块或块级元素。 但是因为我将所有SPAN设置为display:none在演示2中display:none ,所以jQuery无法确定。


顺便说一句这张票是在这里:http://bugs.jquery.com/ticket/8099


这是一个错误,对。 但你可以做$('span').css('display', 'inline'); 而不是$('span').show();


这是因为.show()就像一个显示块,除了显示属性被恢复到最初的状态。

jQuery在使用show修改的节点中使用名为olddisplay的属性(您可以使用FireQuery查看它),如果修改了跨度的框模型(而不是#span),jquery不会识别节点的正确的旧显示模式


这个问题已被确定为一个错误。 门票在这里:
http://bugs.jquery.com/ticket/8099

链接地址: http://www.djcxy.com/p/4589.html

上一篇: SPAN element becomes block level on show() in jQuery

下一篇: How to write value into an address in format string attack