Javascript 事件的函数

Javascript 事件的函数,javascript,function,events,dom-events,Javascript,Function,Events,Dom Events,我想从以下内容创建一个函数: element.onclick = function(e){ ... code ... } 对这样的事情: element.onclick = doSomething(e); element2.onclick = doSomething(e); function doSomething(e){ ... code ... } element.onClick = clickEvent; 通过这种方式,我可以多次调用该函数,但通过这种方式,e不会

我想从以下内容创建一个函数:

element.onclick = function(e){
    ... code ...
}
对这样的事情:

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

function doSomething(e){
    ... code ...
}
element.onClick = clickEvent;
通过这种方式,我可以多次调用该函数,但通过这种方式,e不会作为事件传递,因此不起作用


我应该怎么做?

您需要以以下形式编写:

function fnName(e){
    ... code ...
}
然后您可以调用fnName并传递所需的变量

如果函数实际上不需要“e”,可以编写

function fnName(){
    ...code...
}
您可以这样做:

element.onclick=function{

myfunc();
}

函数myfunc

{

…代码


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

function fnName(e) {
  ... code ...
}
可以以多种方式使用:

element.onclick = fnName;

fnName();

//Call it however you like?

不确定您的确切意思,但您可以声明一个函数并将其用作多个元素的处理程序。事件参数仍将被传递

element.onclick = someHandler;
anotherElem.onclick = someHandler;
yetAnotherElem.onclick = someHandler;

function someHandler(e){
    e = e || event;
    ... code ...
}
这3个元素中的每一个都将调用相同的处理程序,并将事件对象作为其参数

编辑:关于编辑,您调用函数并将其返回值赋给onclick,而不是赋给函数本身


从你的评论看来,你已经明白了o

首先,您必须为函数命名

function clickEvent(e) {
    ... do stuff ...
}
然后将其连接到元素上,如下所示:

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

function doSomething(e){
    ... code ...
}
element.onClick = clickEvent;

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

我有点困惑。您是否试图将此onclick函数设置为变量并多次调用它?或者你只是想在任何地方运行该函数中的任何东西吗?我也很困惑,我编辑了我的问题:PHey,问题是元素中的e。onclick=dosomething;lol:D现在可以用了,谢谢大家!然后您可以说element.onclick=fnName,它将与问题中的第一个示例代码一样工作。