Ist die Funktion .swap () immer sinnvoll?

Beim Durchsuchen der Quelle von 1.7rc1, Zeile 6625, habe ich die Funktion .swap gefunden:

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

Ich habe es noch nie zuvor benutzt. Benutzen die Leute es tatsächlich? Wofür?

0
@ Blender: Klar, warum nicht?
hinzugefügt der Autor Randomblue, Quelle
Sie haben gerade die jQuery-Quelle zum Spaß gelesen?
hinzugefügt der Autor Blender, Quelle
Es ist eine private Funktion ( nicht dokumentiert ), also ist es eindeutig nicht für jQuery Benutzer.
hinzugefügt der Autor Matt Ball, Quelle
Wenn Sie ein paar Zeilen nach unten schauen, werden Sie sehen, dass es benutzt wird. Es ist sehr wahrscheinlich für den internen Gebrauch.
hinzugefügt der Autor Gabriele Petrioli, Quelle
hinzugefügt der Autor Petr, Quelle

1 Antworten

.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 verwendet es, um das Layout der Dinge vorübergehend zu ändern, um einige Messungen durchzuführen. Wenn Sie beispielsweise ein div-Objekt verwenden und es auf position: absolute setzen, erhalten Sie die wahre Breite. Wenn es sich jedoch im normalen Layout des Dokuments befindet, nimmt ein div die Breite an von seinem Behälter. Wenn Sie einen jQuery-Aufruf an .width() durchlaufen oder prüfen, wie diese Funktion in der Quelle implementiert ist, wird sie als verwendet angezeigt.

Ich bin sicher, du könntest etwas anderes erfinden/finden, um es zu benutzen, aber ich habe keine Notwendigkeit dafür gefunden, außer den Messungsarten der Benutzung, für die jQuery es benutzt.

1
hinzugefügt