0

我试图通过一个变量传递一个函数,作为点击事件的一部分,例如:

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:

4

1 回答 1

1

你做了太多的回调函数传递。这会创建很多闭包,在这种简单的情况下不需要。

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


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

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

configureClick('Hello');
于 2013-01-03T11:05:12.517 回答