日期:2014-05-16  浏览次数:20345 次

js调用jquery問題
JScript code

$(document).ready(function(){
var gTmp;
function foo1(){
gTmp = foo2();
alert(gTmp);
}
function foo2(){
return 1;
}
});

function foo3(){
foo1();//要調用的是上面的foo1
}



<iframe src="test.html"></ifarme>

//test.html
window.parent.foo3();

[!]注意,foo1 foo2 foo3不能省略,而foo3卻可以放進ready裡面
問題是:
如此調用提示foo1未定義,放入ready foo3未定義
iframe 想調用jquery函數怎麼辦,高手支招

------解决方案--------------------
楼主,没搞明白 js 函数的作用域

$(document).ready(function(){ 
var gTmp; 
function foo1(){ gTmp = foo2(); alert(gTmp); }
 function foo2(){ return 1; } 
}); 
// foo1, foo2 在匿名函数 function 内部有效

function foo3(){ foo1();//要調用的是上面的foo1 } 

把3个函数都定义成全局得就可以。

你的ready 函数,根本就没用(没用执行任何代码,只是定义了,一个变量,2个函数,都是局部的)