jQuery: la función se ejecuta bien cuando se dispara con un clic div, pero no en la carga de la página

Tengo la siguiente función que deseo ejecutar en la carga de la página y volver a ejecutar al hacer clic en div # trigger. Cuando haces clic en el botón div # todo está bien. Sin embargo, en la carga de la página, el código parece funcionar a veces, pero a veces sangra la cantidad incorrecta, y la alerta (que acabo de poner allí para propósitos de depuración) nunca se dispara. Gracias

  function textIndentFunc () {

     textString = $('#from-1 :selected').text();

     $('#hidden').text(textString);

     textWidth = $('#hidden').width();

     inputWidth = $('#from-1 select').width();

     indentMy = (inputWidth / 2) - (textWidth / 2);

    $('#from-1').css('text-indent',indentMy);

}

 $('#trigger').click(function(){
    textIndentFunc();
    alert('fire');
 });

textIndentFunc();

ACTUALIZACIÓN - Debería haber mencionado que este código se ejecuta en document.ready.

ACTUALIZACIÓN: mover el código a window.load no cambia nada.

Respuestas a la pregunta(5)

Su respuesta a la pregunta