2012-02-14 179 views
0
function addValidEvent(item,event,func) 
{ 
    if (item.addEventListener) 
    { 
     item.addEventListener(event, func, false);   
    } 
    else 
    if (item.attachEvent) 
    { 
     item.attachEvent("on" + event, func); 
    } else { 
     //todo 
    } 
} 

我這樣稱呼它JavaScript函數作爲參數傳遞給其他函數

addValidEvent(element, "mouseover", inRadio(element)); 

inRadio這是其他的功能,我需要進行註冊這個調用addValidEvent呼叫inRadio。

如何更正傳遞參數像param?

+0

可能重複: //sackoverflow.com/questions/2571655/javascript-parameter-passing-in-dynamic-action-handler) – 2012-02-14 15:31:45

回答

3

上你的函數被調用的上下文是元素本身,所以你可以通過函數引用(名稱)作爲事件處理程序:

addValidEvent(element, "mouseover", inRadio); 

或者你可以用在一個匿名函數的函數調用(這可能會派上用場,當你想擁有在回調更多的控制):

addValidEvent(element, "mouseover", function(){inRadio(element);}); 
4

將它作爲函數傳遞。現在你正在調用方法inRadio。像這樣做

addValidEvent(element, "mouseover", function() {inRadio(element); }); 
2

在你的代碼實際上是調用函數和返回v該呼叫的電話已作爲第三方通過addValidEvent方法通過。

試試這個。

addValidEvent(element, "mouseover", inRadio); 

補充說明:由於jQuery是標記到這個問題,我建議你使用jQuery這是如此簡單。

$(element).mouseover(inRadio); 
-1
var a = function() { 
    // code here 
} 

然後你需要用 'A'

什麼,但我更喜歡以前的答案:)

[JavaScript參數動態動作處理器傳遞(HTTP的
+0

這對您有幫助嗎?我沒有看到與問題的關係。 – 2012-02-14 15:36:43

+0

我仍然認爲這是一個相當不完整的例子。目前還不清楚'a'如何與現有代碼整合。 – 2012-02-14 15:54:08

+0

我沒說過;)無論如何,我明白這個問題,我只是想鼓勵你改進你的答案。你所展示的是如何創建一個功能,我想OP對此已經知道了。 – 2012-02-14 15:58:49

相關問題