将两个或多个函数添加到onclick事件

时间:2015-06-25 20:09:51

标签: javascript html css

我创建了一个图像元素并为其添加了属性。 我还通过执行以下操作为onclick事件添加了一个函数:

img.onclick = change;

现在我想添加另一个函数,它有一个参数给我的onclick事件。可以说我想补充一下:

retrieveClass(this.className);

我该怎么做?有点像...

 img.onclick = change, retrieveClass(this.className);

5 个答案:

答案 0 :(得分:3)

如果您希望由单个事件触发多个事件处理程序,则标准方法是使用addEventListenerdoc)。

假设在您的示例中,change是处理函数的名称,retrieveClass(this.className)返回另一个处理函数,您可以这样做:

img.addEventListener('click', change);
img.addEventListener('click', retrieveClass(this.className));

答案 1 :(得分:1)

img.onclick = function () { change; retrieveClass(this.className); }

答案 2 :(得分:1)

您可以使用引用该功能的bind方法,例如:

img.onclick = retrieveClass.bind(img, img.className);
                                 ^^^
                                 this

相当于:

img.onclick = function(){
   retrieveClass(this.className);
}

答案 3 :(得分:1)

这是最简单的......

<img src="..." onclick="command1; command2;">

你应该使用一个函数:

function imgClicked() {
    command1;
    command2;
}

当然,您也可以使用

声明它
img.onclick = function () { command1; command2; }

答案 4 :(得分:0)

创建一个包含两个函数调用的包装函数,然后将其绑定到您的onclick。

function wrap() {
    change;
    retrieveClass(img.className);
}

img.onclick = wrap();