Ouvinte de evento disparando muito cedo quando os parâmetros são passados

Eu passo um número de parâmetro para uma função de javascript que constrói um formulário para o usuário preencher. Entre esses parâmetros estão mais duas funções contidas em uma classe separada que manipula o salvamento ou cancelamento do formulário. A função cancelar requer dois parâmetros que ela usa para determinar qual lista de entidades criar. O problema está nos parâmetros. Enquanto na função de criação de formulário, se eu anexar a função cancelar ao botão de cancelamento recém-criado sem fornecer nenhum parâmetro, o botão de função funciona bem, mas cria uma lista vazia devido à falta de parâmetros. No entanto, se eu anexar a função com os parâmetros, a função será disparada imediatamente quando a página for criada, e não quando o botão for clicado. Eu tentei anexar o ouvinte de duas maneiras diferentes, incluindo javascript, jquery e até yahoo.util. Tudo funciona corretamente na função cancelar quando é chamado com parâmetros em outras instâncias. Alguma idéia sobre por que a função dispara para o início quando os parâmetros são passados?

Aqui está um código sudo de diferentes maneiras que eu tenho anexado o ouvinte mesmo.

function buildform(formData, saveFunction, CancelFunction, p1, p2){
      $("#cancelButton").live("click", cancelFunction(p1, p2);
      YAHOO.util.Event.on("cancelButton", "click", cancelFuntion(p1, p2));
      cancelButton.setAttribute("onClick",cancelFunction(p1, p2);
}

questionAnswers(1)

yourAnswerToTheQuestion