关闭在加载时激活,而不是复选框更改
Closure activates on load, not checkbox change
我正试图将一个onchange事件附加到js创建的复选框中。
我终于让闭包在for循环中工作,但现在它在加载时激活,而不是在更改时激活。
为什么会这样?
https://jsfiddle.net/dkrh587h/2/
chkbox.addEventListener("change", (function(newVarA, newVarB, newVarC, newVarD) {
searchMap(newVarA, newVarB, newVarC, newVarD);
}(gblStatus, "Status", statuser, chkbox.checked)), false);
这是因为您正在调用作为第二个参数传递给带有额外括号的addEventListener
的函数。
这有时被称为自执行功能:
function() {
// will get invoked immediately
}();
由于闭包的原因,像statuser
这样的变量将在回调中可用(假设它们是在"包含"发布代码的函数范围内声明的)。
这样的模式应该有效:
var statuser = 'my user'; // will be available in your callback
chkbox.addEventListener("change", function() {
searchMap(gblStatus, "Status", statuser, chkbox.checked);
}, false);
相关文章:
- 使用javascript在页面加载时取消选中所有复选框
- 关闭在加载时激活,而不是复选框更改
- Jquery在初始页面加载时选中复选框时显示链接的代码
- 在本地存储中选中复选框,但在加载时也要筛选列表
- 更新 url 而不重新加载,具体取决于使用 jquery/javascript 选择的复选框
- jquery复选框仅在第一次加载时触发
- 页面加载时复选框只选中一次?ASP.NET,C#
- AngularJS复选框过滤在页面加载时不进行过滤
- 选中复选框时仅重新加载一个DIV
- 为预先选中的复选框在加载时运行ng更改函数
- AngularJS过滤器使用ng个重复复选框显示所有页面加载
- 如何检查页面加载时是否选中复选框,如果选中,则显示表单
- 将复选框重置为基于先前复选框的页面加载状态's状态
- 将复选框选中的状态保存并加载到数据库
- 选中加载时对象数组中的复选框
- “加载 KML”复选框
- 使用复选框将表单提交到同一页面,而无需重新加载页面
- 如何使用 jquery 在页面加载时检查带有值的输入复选框字段
- 加载 DOM 后无法读取动态创建的复选框的属性
- 按复选框加载特定标记