2010-10-25 39 views
2

所以我想創建這樣一個功能:的Javascript:功能的事件

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

爲了這樣的事情:

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

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

這樣我可以調用函數多次,但通過這種方式e不作爲事件傳遞,因此不起作用。

我該怎麼做?

Sry基因如果我說一些愚蠢的事,這東西是有點硬給我

+0

我有點困惑。你是否試圖使這個onclick函數變量並多次調用它?或者你只是想在任何地方運行該功能? – shoebox639 2010-10-25 20:13:10

+0

Sry我也很困惑,我編輯了我的問題:P – Adam 2010-10-25 20:16:29

+0

嘿,問題出現在(element).onclick = doSomething(e);'lol:D它現在可以工作了,謝謝你們! – Adam 2010-10-25 20:20:08

回答

3

不是你說不清楚到底是什麼,但你可以聲明函數,並用它作爲處理多個元素。 event參數仍將被傳遞。

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

function someHandler(e){ 
    e = e || event; 
    ... code ... 
} 

3個元素中的每一個都會調用相同的處理程序,並將事件對象作爲其參數。


編輯:關於你的編輯,你調用功能和分配功能本身的返回值賦給onclick代替。

似乎從你的評論中發現,儘管如此。 :o)

0

你需要把它寫在形式:

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

,然後你可以調用fnName和通你需要的變量。

如果函數並不真正需要的 'E',你可以寫

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

然後你可以說'element.onclick = fnName',並且它將作爲問題中的第一個示例代碼工作。 – BudgieInWA 2010-10-25 20:15:01

-1

,你可以這樣做:

element.onclick =功能(E){

myfunc(); 

}

function myfunc()

{

...代碼

}

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

element.onclick = onClickHandler; 
1

我想你是問如何創建一個正常功能,並以不同的方式使用它?

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

可以以不同的方式使用:

element.onclick = fnName; 

fnName(); 

//Call it however you like? 
1

首先,你必須給你的函數一個名字。

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

然後將其固定到這樣的元素:

element.onClick = clickEvent; 

當觸發事件,該事件將自動獲得傳遞給函數。