我遇到了将变量传递给 IFFE 的问题。读了一些书,还是没弄明白。真的很感激这里的一些指导。
- 我有一个点击事件处理函数,它从 单击时的 DOM。
- 我需要将该 ID 传递给 IIFE
- IFFE 需要从数组中添加/删除该 ID, 取决于它是否已经存在。
这是我得到的:
事件:
$(document).on('click', 'input[type="checkbox"]', check);
点击处理程序:
function check() {
var id = $(this).closest('ul').attr('data-id');
return id;
}
IIFE:
var checkID = (function (val) {
var arr = [];
return function () {
var i = arr.indexOf(val);
if (i === -1) {
arr.push(val);
} else {
arr.splice(i, 1);
}
return arr;
}
})(id);
现在我正在获取 ID,但没有归还它。
在我的 IIFE 中,我确实传递了一个 id
变量,但它是未定义的。
那么,如何将从 check()
获取的 ID
变量传递给 checkID
IIFE?
也欢迎其他解决方案。
谢谢
最佳答案
在你的 clickHandler 中
function check() {
var id = $(this).closest('ul').attr('data-id');
checkID(id);
}
并将checkID
更改为
var checkID = (function () {
var arr = [];
return function (val) {
var i = arr.indexOf(val);
if (i === -1) {
arr.push(val);
} else {
arr.splice(i, 1);
}
return arr;
}
})();
关于javascript - 将动态参数传递给 IIFE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617144/