简单的问题:jQuery如何知道元素在使用fadeIn时应该使用的显示模式?
我的意思是,即使我在CSS中设置display:none
最初,它似乎对我淡入的任何元素都使用了正确的显示模式 - 图像使用内联, div正在使用块等。
我查看了GitHub上的jQuery源代码,但我找不到我要找的东西。
我问的原因是因为我自己制作一个小插件,使用淡入淡出(但是使用Animate,因为有超过1个需要动画的属性)。
答案 0 :(得分:6)
它使用$.data
来存储它:
console.log($._data( elem, "olddisplay" ));
下划线表示它可以访问通常$.data
或$.fn.data
无法访问的数据。基本上这仅供内部使用,您不应触摸它。
如果元素通过CSS设置为display:none
,并且淡入淡出,则jQuery仍然知道将其设为inline
等。在这种情况下,它使用函数
// Try to determine the default display value of an element
function css_defaultDisplay( nodeName ) {
哪个会为"inline"
nodeName === "span"