请教个闭包问题。
<body>
<div id="divMain"></div>
<script type="text/javascript">
function Test(title)
{
alert(title);
}
function Init(functionName, title)
{
var callFunction = functionName;
return function()
{
var content = '<a href = "#" onclick = callFunction("' + title + '"); >click me</a>';
document.getElementById("divMain").innerHTML = content;
}
}
var aa = Init(Test, 'hello');
aa();
</script>
</body>
var callFunction作为全局变量放在Function Init外面,则可以弹出对话框,但我这边需要把callFunction定义在function Init中。
所以想采用闭包的形式访问,但发现仍无法调用该函数。谢谢!
------解决方案--------------------你非要拼接的话,用下面的方法吧。
<script type="text/javascript">
function Test(title){
alert(title);
}
function Init(functionName, title){
var callFunction = functionName;
return function() {
var content = '<a href = "#" onclick =
'+callFunction+'("' + title + '"); >click me</a>';
document.getElementById("divMain").innerHTML = content;
}
}
var aa = Init(
'Test', 'hello');
aa();
</script>
------解决方案--------------------var window.callFunction = functionName;
...
onclick = window.callFunction("' + title + '");
...