微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 将一组函数作为参数传递

这是我的代码

function test(e, f) {
    for (var i = 0; i < e.length; i++) {
        $('#clickme').append("<button id='op" + i + "'>" + e[i] + "</button>")
        $('#op' + i).click(function () {
            f[i]();
        })
    }
}


$(function postPunk() {
    var func1 = function () {
        alert('1');
    }
    var func2 = function () {
        alert('2');
    }
    var func3 = function () {
        alert('3');
    }
    test(['Option1', 'Option2', 'Option3'], [func1, func2, func3]);
})

点击事件不会调用函数.如果我在点击事件中发出警报测试,它会触发.

任何想法为什么这不起作用?将函数数组作为参数传递似乎是一个问题.有一个更好的方法吗?

解决方法:

与此类型的其他问题一样,我一直在改变.

相反,试试这个:

for( var i=0; i<e.length; i++) {
    (function(i) {
        // your code that depends on i not changing
    })(i);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐