jQuery - função é executada quando disparada no clique div, mas não no carregamento da página

Eu tenho a seguinte função que eu quero executar no carregamento da página e re-executar quando você clica em trig # trigger. Quando você clica em div # trigger, tudo está bem. No entanto, no carregamento da página, o código parece às vezes funcionar, mas, às vezes, recua na quantidade errada, e o alerta (que acabei de colocar lá para fins de depuração) nunca é acionado. obrigado

  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();

ATUALIZAÇÃO - Eu deveria ter mencionado que esse código é executado em document.ready.

UPDATE - mover o código para window.load não altera nada.

questionAnswers(5)

yourAnswerToTheQuestion