我将多个参数传递给一个javascript函数,该函数构建一个表单供用户填写。在这些参数中,还有两个函数包含在一个单独的类中,用于处理表单的保存或取消。cancel函数需要两个参数来确定要构建的实体列表。问题在于参数。在表单构建功能中,如果我将取消功能附加到新创建的取消按钮上,而没有给它任何参数,则功能按钮工作正常,但由于缺乏参数,会构建一个空列表。但是,如果我将函数与参数附加在一起,则函数会在创建页面时立即触发,而不是在单击按钮时触发。我尝试过以几种不同的方式附加监听器,包括javascript、jquery甚至yahoo.util。当在其他情况下使用参数调用cancel函数时,它会正常工作。你知道为什么函数在传递参数时会提前触发吗?
以下是我附加偶数监听器的不同方式的sudo代码。
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);
}