将函数按变量传递给另一个要绑定为jQuery单击事件的函数

时间:2013-01-03 10:57:41

标签: javascript function

我正在尝试通过变量传递一个函数作为click事件的一部分,例如:

function bindClick(func) {
    $('#button').click(function() {
        func();
        return false;
    });
}

function configureClick() {
    bindClick(function () { executeClick(message); });
}

function executeClick(message) {
    alert(message);
}

所以configureClick()会在某个时刻运行,然后#button.click()需要调用func的内容。

无论发生什么事情,都是默默地这样做,没有错误或期望的行为。

更新:我是个白痴!上面的代码正在运行。我的executeClick有一个switch-case块,当我传递错误的密钥时,它被忽略了。抱歉D:

1 个答案:

答案 0 :(得分:1)

你做了太多的回调函数传递。那就是“创造了大量的封闭,这在一个简单的案例中是不需要的。”

function bindClick(func) {
    $('#button').click(function() {
        func();
        return false;
    });
}


function executeClick(message) {
    alert(message);
}

function configureClick(message){
    bindClick(function(){ executeClick(message) });
}

configureClick('Hello');