2012-02-14 181 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

相关问题