浏览1.7rc1第6625行的来源,我找到了.swap
函数:
// A method for quickly swapping in/out CSS properties to get correct calculations
swap: function( elem, options, callback ) {
var old = {};
// Remember the old values, and insert the new ones
for ( var name in options ) {
old[ name ] = elem.style[ name ];
elem.style[ name ] = options[ name ];
}
callback.call( elem );
// Revert the old values
for ( name in options ) {
elem.style[ name ] = old[ name ];
}
}
我以前从未见过它。人们真的使用它吗?为了什么?
答案 0 :(得分:1)
.swap(elem, options, callback)
是一个临时设置多个CSS值(在第二个参数的对象中传递的值),调用回调(第三个参数)然后在回调返回后恢复原始CSS值的函数。
jQuery使用它来临时更改事物的布局以进行一些测量。例如,如果你取一个div对象并将它设置为position: absolute
,你将能够得到它的真实宽度,但是如果它在文档的正常布局中,则div获取它的容器宽度。如果您通过jQuery调用.width()
或查看该函数是如何在源代码中实现的,您将看到它被使用。
我确信你可以发明/找到其他东西来使用它,但除了jQuery使用它的测量类型之外,我还没有找到它。