HTML JQuery - document.ready 里面无法调用新的JQuery函数,为什么?

新的JQuery函数 在 document.ready 里面无法调用,在document.ready 外面调用却可以;为什么?

        <script type="text/javascript">
        (function($) {
            $.fn.abc = function() {
                alert("new function of abc");
            };
        })(jQuery);

        <!-- test 1:测试成功,alert正常弹出 -->
        $("#simple_sketch").abc(); 
        <!-- test 2 
        注释掉test1后,测试test2;test2失败:
        浏览器报错:TypeError: $(...).abc is not a function
        -->     
        $(document).ready(function() {
            $("#simple_sketch").abc();
        });
        </script>

没问题,你确认就这些代码,是不是其他地方修改过abc扩展了什么的

 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<div id="simple_sketch"></div>
<script type="text/javascript">
    (function($) {
        $.fn.abc = function() {
            alert("new function of abc");
        };
    })(jQuery);

    $(document).ready(function() {
        $("#simple_sketch").abc();
    });
</script>

果然是后面的一个js文件也定义了$.fn,直接注释掉那个js文件就好了。