JavaScript函数作为参数传递给其他函数
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?
上你的函数被调用的上下文是元素本身,所以你可以通过函数引用(名称)作为事件处理程序:
addValidEvent(element, "mouseover", inRadio);
或者你可以用在一个匿名函数的函数调用(这可能会派上用场,当你想拥有在回调更多的控制):
addValidEvent(element, "mouseover", function(){inRadio(element);});
将它作为函数传递。现在你正在调用方法inRadio。像这样做
addValidEvent(element, "mouseover", function() {inRadio(element); });
在你的代码实际上是调用函数和返回v该呼叫的电话已作为第三方通过addValidEvent
方法通过。
试试这个。
addValidEvent(element, "mouseover", inRadio);
补充说明:由于jQuery是标记到这个问题,我建议你使用jQuery这是如此简单。
$(element).mouseover(inRadio);
var a = function() {
// code here
}
然后你需要用 'A'
什么,但我更喜欢以前的答案:)
[JavaScript参数动态动作处理器传递(HTTP的这对您有帮助吗?我没有看到与问题的关系。 – 2012-02-14 15:36:43
我仍然认为这是一个相当不完整的例子。目前还不清楚'a'如何与现有代码整合。 – 2012-02-14 15:54:08
我没说过;)无论如何,我明白这个问题,我只是想鼓励你改进你的答案。你所展示的是如何创建一个功能,我想OP对此已经知道了。 – 2012-02-14 15:58:49
可能重复: //sackoverflow.com/questions/2571655/javascript-parameter-passing-in-dynamic-action-handler) – 2012-02-14 15:31:45