iteye_7482
2012-09-06 12:30
浏览 321

jquery 函数调用

对于jquery和javascript之间的函数调用有点疑问:
我写这样一个jquery代码:
[code="js"]
$(document).ready(function() {
function clickToPage() {
var options = {
...
success: clickToPageResponse,
...
};
$.ajax(options);
}
function clickToPageResponse(data) {...}
});

// jquery的$(document).ready(function(){}函数外部
function deleteFunction(id) {
var options = {
...
success: deleteFunctionResponse,
...
};
$.ajax(options);
}
function deleteFunctionResponse(result) {
var options = {
...
success: clickToPageResponse,
...
};
$.ajax(options);
}
[/code]
问题出来了,deleteFunctionResponse中怎么都呼出不到clickToPageResponse,我估计是因为deleteFunctionResponse在$(document).ready(function(){}外部,而clickToPageResponse在内部的原因,请问有没有办法让$(document).ready(function(){}外部的javascript代码调到内部的jquery函数?
我不是很明白在$(document).ready(function(){}内外的具体区别,感觉上内部应该是jquery的代码,外部的话就是javascript,而且为什么在jsp标签中用onclick属性调用的函数只能写在$(document).ready(function(){}外部,写在内部就是调不到,只能用.click()来加载onclick函数?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • iteye_5246 2012-09-06 12:49
    已采纳

    刚写的少了一种情况,现在补全
    [code="html"]
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



    Insert title here

    <br> $(function(){<br> alert(&quot;1&quot;);<br> function demo()<br> {<br> alert(&quot;demo&quot;);<br> }<br> window.somefun=function(){<br> alert(&quot;外面 也要调用&quot;);<br> }</p> <pre><code> }); function test1() { somefun();//或者 window.somefun(); } &lt;/script&gt; </code></pre> <p></head><br> <body><br> <input onClick="test1()" type="button" value="测试" /><br> <input onClick="somefun()" type="button" value="测试" /><br> </body><br> </html><br> [/code]</p>
    已采纳该答案
    打赏 评论
  • jinnianshilongnian 2012-09-06 12:35
    <script type="text/javascript">
    
        $(function() {
            //这是函数体 
    
            function a() {//是本地函数
               alert(1);
            }
    
            a(); //能调用本地函数a
    
            b = a; //把a函数赋值给全局变量b
    
            ccc();
        });
    
        function ccc() {
            //a();//调用不到$(function(){});中的a函数,因为它是本地函数
            b();//因为b是全局变量 可以调用到
        }
    
    
    </script>
    
    打赏 评论
  • iteye_5246 2012-09-06 12:36

    简单来做
    把js函数写进 $(document).ready(function(){}); 这个里面

    打赏 评论
  • iteye_5246 2012-09-06 12:47

    我刚写了个demo,满足你说的
    [code="html"]
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



    Insert title here

    <br> $(function(){<br> alert(&quot;1&quot;);<br> function demo()<br> {<br> alert(&quot;demo&quot;);<br> }<br> window.somefun=function(){<br> alert(&quot;外面 也要调用&quot;);<br> }</p> <pre><code> }); function test1() { somefun();//或者 window.somefun(); } &lt;/script&gt; </code></pre> <p></head><br> <body><br> <input onClick="somefun()" type="button" value="测试" /><br> </body><br> </html><br> [/code]</p>
    打赏 评论
  • FruitHardCandy 2012-09-06 13:11

    大哥 请把 function clickToPageResponse(data) {...} 写在$(document).ready(function(){})之外 他属于整个window的域 不只属于document

    打赏 评论
  • iteye_1924 2012-09-06 15:46

    $(document).ready(function(){}的作用:保证document被完全加载,避免未加载完内容导致js的执行出现问题。所以一般将js写在其内。

    打赏 评论

相关推荐 更多相似问题