jquery紧急提问,js如何调用jquery内的函数?

$(document).ready(function(){
function foo1(){
alert(123);
}
});

function foo2(){
foo1();
}
调用foo2时说foo1未定义
说明:foo2无法放入ready中
因为有iframe会通过window.parent.foo2()调用它
放入ready后会提示foo2未定义
问:foo2如何调用foo1

$(document).ready(function(){
//代码
//ready里面包住是一个作用域 保护这里面的变量 函数不受外界污染 所以 外面是调用不到这里面
//定义的变量和函数的 把foo1发到外面声明 相当于在window的作用域下 同在window作用域下其他
//地方都可以调用foo1

})
function foo1(){//声明函数
$('body').addClass('body');
alert($('body')[0].className);

}
//调用
function foo2(){
foo1();

}
//这样就没问题
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-30

函数是可以调用的,方法就不能调用,还有,JQ的函数里的对象是JQ,而JS和JQ的方法不能混着用,如果你JQ想用JS的方法就把对象转成JS对象,如果JS想用JQ的方法就把JS对象转成JQ对象

// JS获取对象
var obj = document.getElementById('id');
// 把JS对象转换到jQuery对象
var $obj = $(obj);
var $obj = $('#id');
// jQuery对象转换到JS对象
var obj = $obj.get(0);

第2个回答  推荐于2017-09-20
$(document).ready(function(){}) 是若名函数,document,可以不写,可以写成这样$(function(){})
function(){}里定义的都是保护的东东,外面无法调用,但可以调外面的追问

你意思我用iframe和选jquery冲突了呗,这可如何是好

本回答被提问者采纳
第3个回答  2012-07-09
你在iframe中调用父窗口的foo2,那么你在父窗口中调用iframe中的foo1,应该是这样:
document.all("Iframe的ID").contentWindow.foo1();追问

没有用parent调用iframe
是想在iframe中调用父中的jquery内函数
window.parent.foo1();这个foo1只能是非jquery函数,是这个问题

第4个回答  2012-07-09
foo1不可以放在ready外吗?
------------------------------------
不可以试试这样:
var myf = $(document).ready(function(){
return function foo1(){
alert(123);
}
});
function foo2(){
myf();

}追问

我看你的代码,也是是独立出来,我的这个foo2比较复杂,foo2调用了兄弟层的foo3 foo4
我给写下这样,你就明白了
jQuery(function($){
var tmp;
function foo2(){
tmp = foo3();
}
function foo3(){
//foo4()....
return 1;
}
}//end
function foo1(){
foo2();
}
你这种方式可行,我评估一下可以满足要求,但就是报错了,说myf() is not a funtion

难道不能这样赋值?

相似回答