javascript - 将动态参数传递给 IIFE

标签 javascript jquery iife

我遇到了将变量传递给 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/

相关文章:

javascript - 意外行为 : Javascript, setTimeout() 和 IIFE

javascript - Jquery 删除子项并返回父项

javascript - 使用javascript在无序列表中定位元素

jquery - 比较两个客户端键入的文本字段 jQuery

jquery - 为什么我无法获得图像的自然宽度?

jquery - 滑动切换 jQuery,不影响其他页面元素

javascript - 为什么这个功能有效?每次调用该函数时, "executed"不应该返回 false 吗?

javascript - Href 哈希 ID 滚动到 Div 但它会跳转并跳过某些部分

javascript - React-倒计时-现在不在渲染上更新

Javascript:一个函数,它是 IIFE 以及供以后使用的函数定义