<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <script src="jquery.js" type="text/javascript"></script>
 </HEAD> <BODY>
  
 </BODY> <script type="text/javascript">
//---------------------------
$(document).ready(function() {

function  readyin(){
alert("里面的");
}
/*
(function(){//里面调用里面没问题
readyin();
})();
(function(){//里面调用外面也没问题
readyout();
})();
*/

}); //------------------------
function  readyout(){
alert("外面的");
} (function(){
readyout();
try{
readyin();
}catch(e){
alert("外面调用里面怎么就不行?怎么才能调用到? $.readyin()?求助!!");
}
})();
</script>
</HTML>

解决方案 »

  1.   

    lz真搞笑,ready里是一个函数,新建作用域,外面 当然不可用,
    如果外面需要调用可以在里这样声明
    window.somefun=function(){
    alert("外面 也要调用");
    }
      

  2.   

    ready 也相当于一个函数,和js的onload函数差不多,就比如onload="test()"
    function test(){
       function test1(){
          alert("1")
       }
    }
    你在外面肯定调用不了test1()函数的
      

  3.   

    function应该写在<script>之间而不是ready 函数里面
      

  4.   

    没太明白,
    我怎么在外面不管
    window.somefun();
    还是somefun();都报错呢!
      

  5.   

    啊?确定么? 我一直把所有的东西都放里面~里面放了几十个函数了~照样跑~
    难道我需要都拿出来?
    不是说ready有很多好处么~拿出来不是享受不到好处了!
    会不会影响页面加载效率等等问题啊
      

  6.   

    戴花了啊~js不还有个函数格式的对象概念么~咱不能给它整个引用啊?引用里面的函数试试~呵呵~行的通不?其实我遇到的问题只要把function都从ready里都拿出来就解决了~只是我不知道这样做好不好~代码太长了~又不知道ready 和onload是个什么效率,
      

  7.   

    $(document).ready(function(){
    window.somefun=function(){
        alert("外面 也要调用");
    }
    })
    somefun();//两种都可以,报错的原因是上面ready还没运行,somefun还不存在,所以不能直接写到这里,也许你那需求只能写到外面 了吧
    window.somefun();
      

  8.   

    这两上函数而已,没什么效率不效率的onload会页面图上加载完毕后触发 ,
    ready等dom加载完后就会触发
      

  9.   

    哎呀`我用的editplus  ie7,怎么还是报错呢?说缺少对象啊!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script src="jquery.js" type="text/javascript"></script>
     </HEAD>
     <BODY>
     </BODY>
     <script type="text/javascript">
     /*
    $(document).ready(function() {
    window.wokao=function(){
    alert("我靠");
    }
    }); window.woyun=function(){
    alert("我晕");
    } woyun();
    try{
    wokao();
    }catch(e){
    alert("还是不行啊")
    }
    */$(document).ready(function(){
    window.somefun=function(){
        alert("外面 也要调用");
    }
    })
    somefun();//两种都可以,报错的原因是上面ready还没运行,somefun还不存在,所以不能直接写到这里,也许你那需求只能写到外面 了吧
    window.somefun();
    </script>
    </HTML>
      

  10.   

    哦~那我试试把所有代码都拿出来~呵呵~只把需要立刻运行的再放回ready里面去,
      

  11.   

    在ready里面声明函数,
    function dd(){}这些是在执行的时候动态生成的,
    里面可以用,外面就不可以用~也不能说里面这些function函数是一次性的我写的东西一直在反复调用!现在我是在让as3通过接口调用js,
    就是死活看不见ready()里的函数,进不去啊~我在外面写个函数,让这个函数代理也行啊~还是不行!
    这个函数也说看不见!
    非逼我全拿出来!
    jquery是对象.ready是函数,函数不也是对象么~  理解不了:(a就不能用$.ready.进去~  然后让它们在里面转起来啊! 
      

  12.   

    只要把function拿出来我的问题应该解决了,或许讨论这个问题也没什么意义,
    谁想说些什么随便说说,饭后结贴!
      

  13.   

    就是个作用域的问题。Javascript的函数有自己的作用域,作用域里定义的变量,函数对外面是看不见的。你把内部定义的函数提到外面,放到全局的作用域,这些函数自然就可以用了。