El detector de eventos dispara demasiado pronto cuando se pasan los parámetros

Paso un número de parámetros a una función javascript que crea un formulario para que el usuario complete. Entre estos parámetros se encuentran dos funciones más contenidas en una clase separada que se encarga de guardar o cancelar el formulario. La función de cancelación requiere dos parámetros que utiliza para determinar qué lista de entidades construir. El problema radica en los parámetros. Mientras estaba en la función de creación de formularios, si adjunto la función de cancelación al botón de cancelación recién creado sin darle ningún parámetro, el botón de función funciona bien pero genera una lista vacía debido a la falta de parámetros. Sin embargo, si adjunto la función con los parámetros, la función se activa de inmediato cuando se crea la página y no cuando se hace clic en el botón. He intentado adjuntar al oyente en un par de formas diferentes, incluyendo javascript, jquery e incluso yahoo.util. Todo funciona correctamente en la función de cancelación cuando se llama con parámetros en otros casos. ¿Alguna idea sobre por qué la función se activa temprano cuando se pasan los parámetros?

Aquí hay un código sudo de diferentes maneras en las que he adjuntado al oyente incluso.

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta