javascript - 传递参数时事件监听器过早触发

标签 javascript jquery parameter-passing event-listener

我将一些参数传递给一个 JavaScript 函数,该函数构建一个供用户填写的表单。在这些参数中,还有两个函数包含在一个单独的类中,用于处理表单的保存或取消。取消函数需要两个参数,用于确定要构建的实体列表。问题出在参数上。在表单构建功能中,如果我将取消功能附加到新创建的取消按钮而不给它任何参数,则功能按钮可以正常工作,但由于缺少参数而构建一个空列表。但是,如果我将函数附加到参数,则该函数会在创建页面时立即触发,而不是在单击按钮时触发。我尝试过以几种不同的方式附加监听器,包括 javascript、jquery 甚至 yahoo.util。当在其他实例中使用参数调用取消函数时,一切正常。关于为什么函数在传递参数时提前触发的任何想法?

这是我附加偶数监听器的不同方式的一些 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);
}

最佳答案

您必须将方法调用包装在函数 block 中,否则它们会立即被评估:

$("#cancelButton").live("click", function () { cancelFunction(p1, p2); });

关于javascript - 传递参数时事件监听器过早触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758466/

相关文章:

javascript - 使用 d3js 中的用户输入在下拉菜单上创建多个图表

Javascript 在对象上循环

javascript - 为什么不等待延迟阻塞?

javascript - 变量 === 未定义与 typeof 变量 === "undefined"

c++ - 为什么我不应该在这个简单的函数中使用 `const`?

bash - 位置参数数组的只读变量 $@

JavaScript JSON 对象对象错误

php - 如何获取 PHP 文件中的 jQuery 变量值

jquery - 简单的 Jquery 悬停放大

java - 在函数之间传递变量