繁体   English   中英

Javascript将函数传递给参数?

[英]Javascript passing function into parameter?

我使用JQuery对话框,从PHP我可以为按钮构建一些加载项。 为了能够从服务器端添加代码,我通过参数传递方法。 问题是FireBug告诉我方法没有定义:

替代文字

okHandler是此方法调用的参数,用于引发对话框,它包含一个简单的警报消息,稍后是一些Ajax调用。 知道为什么它不起作用吗?

替代文字

看起来okHandler是一个包含函数声明的字符串,而不是实际的函数? 你有

okHandler = "function anonymous(){alert('This is a test');}";

代替

okHandler = function(){alert('This is a test');};

正如John okHandler 所说okHandler似乎是一个字符串。 如果它是一个函数它会更好...但是,如果它必须是一个字符串,那么你需要通过eval()来实际执行它:

eval( "(" + okHandler + ")()" )

是否在收到错误时加载了okHandler()函数(作为有效的JS对象 - 而不是String)?

我相信如果foo尚未在某处被声明为变量,那么调用类似“if(foo!= null)”的东西是不行的。 FireBug会抱怨:“okHandler没有定义。”

尝试这样的事......

var myHandlers = {};
// Load okHandler as a member of myHandlers when applicable here...
$('#dialog'+idbox)...
    "Oky": function() {
        myHandlers.okHandler && myHandlers.okHandler();
        ...
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM