Javascript:活动的功能

时间:2010-10-25 20:10:16

标签: javascript events function javascript-events

所以我想从中创建一个函数:

element.onclick = function(e){
    ... code ...
}

对于这样的事情:

element.onclick  = doSomething(e);
element2.onclick = doSomething(e);

function doSomething(e){
    ... code ...
}

通过这种方式,我可以多次调用该函数,但是这样e不会作为事件传递,所以不起作用。

我该怎么做?

Sry如果我说些蠢话,这件事对我来说有点困难

6 个答案:

答案 0 :(得分:3)

不确定您的意思,但您可以声明一个函数并将其用作多个元素的处理程序。 <{1}}参数仍然会被传递。

event

3个元素中的每一个都将调用相同的处理程序,并将事件对象作为其参数。


编辑:关于您的编辑,您调用函数并将其返回值分配给element.onclick = someHandler; anotherElem.onclick = someHandler; yetAnotherElem.onclick = someHandler; function someHandler(e){ e = e || event; ... code ... } ,而不是自行分配函数。

从您的评论中可以看出,您认为这样。 :O)

答案 1 :(得分:1)

function onClickHandler(e){
    //Do stuff...
}

element.onclick = onClickHandler;

答案 2 :(得分:1)

我想你是在问如何创建一个普通函数并以各种方式使用它?

function fnName(e) {
  ... code ...
}

可以多种方式使用:

element.onclick = fnName;

fnName();

//Call it however you like?

答案 3 :(得分:1)

首先,你必须给你的功能命名。

function clickEvent(e) {
    ... do stuff ...
}

然后将它附加到这样的元素上:

element.onClick = clickEvent;

当事件被触发时,事件将自动传递到函数中。

答案 4 :(得分:0)

您需要以以下形式编写:

function fnName(e){
    ... code ...
}

然后你可以调用fnName并传递你需要的变量。

如果你的功能真的不需要'e',你可以写

function fnName(){
    ...code...
}

答案 5 :(得分:-1)

你可以这样做:

element.onclick = function(e){

myfunc();

}

function myfunc()

{

...代码

}