Is de functie .swap () ooit nuttig?

Door de bron van 1.7rc1, regel 6625, heb ik de functie .swap gevonden:

// 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 ];
    }
}

Ik heb het nog nooit eerder gezien. Gebruiken mensen het eigenlijk? Waarvoor?

0
@Blender: zeker, waarom niet?
toegevoegd de auteur Randomblue, de bron
Je was net de jQuery-bron aan het lezen voor de lol?
toegevoegd de auteur Blender, de bron
Het is een privéfunctie ( not documented ) dus het is duidelijk niet voor jQuery gebruikers.
toegevoegd de auteur Matt Ball, de bron
Als u een paar regels naar beneden kijkt, ziet u dat deze wordt gebruikt. Waarschijnlijk voor intern gebruik.
toegevoegd de auteur Gabriele Petrioli, de bron
toegevoegd de auteur Petr, de bron

1 antwoord

.swap(elem, options, callback) is a function that temporarily sets a number of CSS values (those passed in object of the 2nd argument), calls the callback (the 3rd argument) and then restores the original CSS values after the callback returns.

jQuery gebruikt het om de layout van dingen tijdelijk te veranderen om metingen te doen. Als u bijvoorbeeld een div-object gebruikt en dit instelt op position: absolute , krijgt u de ware breedte, maar als het in de normale lay-out van het document is, neemt een div de breedte aan van zijn container. Als u door een jQuery-aanroep naar .width() loopt of bekijkt hoe die functie in de bron is geïmplementeerd, ziet u dat deze wordt gebruikt.

Ik ben er zeker van dat je iets anders zou kunnen uitvinden/vinden om het voor te gebruiken, maar ik heb er geen andere behoefte aan gevonden dan de meettypes van het gebruik waarvoor jQuery het gebruikt.

1
toegevoegd