javascript - 如何为 onclick 事件返回两个函数

标签 javascript function onclick return

<分区>

Possible Duplicate:
How do I pass the value (not the reference) of a JS variable to a function?

我有几个链接 (var a[]),上面有一个 onclick 事件。到目前为止,使用一个函数效果很好:

function setCurrentImage(x) {
    return function() {
        alert("Image: "+x);
        return false;
    }
}

for(var i = 0; i < a.length; i++) {
    a[i].onclick = setCurrentImage(i);
}

问题是,我需要两个函数。而这段代码是行不通的:

function setCurrentImage(x) {
    return function() {
        alert("Image: "+x);
    }
}

function setCurrentNote(x) {
    return function() {
        alert("Note: "+x);
    }
}

for(var i = 0; i < a.length; i++) {
    a[i].onclick = function() {
        setCurrentImage(i);
        setCurrentNote(i);
        return false;
    }
}

这段代码有什么问题?提前致谢:)

最佳答案

您调用的每个函数都会返回一个函数,但实际上不会执行任何操作。
您永远不会调用它们返回的函数。

一旦你解决了这个问题,你就会遇到另一个问题;您所有的内联处理程序共享相同的 i 变量。
您需要将其包装在 IIFE 中。

关于javascript - 如何为 onclick 事件返回两个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103386/

相关文章:

javascript - 如何检查是否在 JavaScript 中设置了变量?

JavaScript 返回语句

无法在 C 函数中修改未知大小的二维数组

javascript onclick 警报在 chrome 中不起作用

javascript - 如何将 Onclick 动态设置为生成的行?

javascript - 如果某个包位于 npm 依赖项中但从未被使用过,它是否会被 webpack 打包

javascript - 关于 Menu Child's Slide Toggle jQuery

javascript - 测试 if 语句中多个函数调用的结果时出现意外行为

无法让我的程序正常工作,发牌时号码相同

javascript - 使用谷歌分析跟踪对 div 的点击