Combine onload and onresize (jQuery)

eozzy picture eozzy · Dec 29, 2009 · Viewed 91.6k times · Source

I want to call the function on load as well as on resize.

Is there a better way to rewrite this more compactly?

$('.content .right').width($(window).width() - (480));
$(window).resize(function(e) {
    $('.content .right').width($(window).width() - (480));
});

Answer

Sampson picture Sampson · Dec 29, 2009

You can bind to the resize event alone, and trigger this event automatically upon load:

// Bind to the resize event of the window object
$(window).on("resize", function () {
    // Set .right's width to the window width minus 480 pixels
    $(".content .right").width( $(this).width() - 480 );
// Invoke the resize event immediately
}).resize();

The last .resize() call will run this code upon load.