【发布时间】:2011-12-25 00:25:49
【问题描述】:
我正在尝试弄清楚如何使用闭包函数。
在单击事件中,我想确定 parm1 和 parm2 的值并将它们显示在 div 中,
然后使用 SQL 语句将新值更新到表中。
如果用户反复点击,我想节流(去抖动)并且只在用户停止点击后 5 秒执行 SQL 更新。但是,parm1 和 parm2 应该在每次点击时显示。
我不确定如何将参数传递给 SQL 进程。
(function() {
// create debounced function
var d_process = $.debounce(SQLprocess, 5000);
$('#myButton').click(function() {
// determine parameters
var parm1 = 1 + 1; // edit: added var
$(".div_1").text(parm1);
var parm2 = 2+2; // edit: added var
$(".div_2").text(parm2);
d_process();
});
}());
function SQLprocess(parm1, parm2) {
//perform an SQL update
}
【问题讨论】:
-
你声明 parm1 和 parm2 的方式你可以直接在你的函数中使用它们,它们是全局范围的。实现“去抖动”的另一种方法是在按钮被点击后禁用 5 秒。
-
Chao -true 在第一点上。对于thr 秒,该按钮用于添加将闹钟调整1 分钟,因此用户应该可以单击多个时间。我只是不想在他完成点击之前更新数据库。
标签: javascript closures throttling