function(){}();会直接执行该方法 这个时候a还没有定义 你可以把a的代码顺序调一下

解决方案 »

  1.   


    不是这样的,我单独测试这个jq插件是没问题的,我知道是jq冲突了,问题是为什么会报a未定义
      

  2.   


    不是这样的,我单独测试这个jq插件是没问题的,我知道是jq冲突了,问题是为什么会报a未定义
    function(){a()}()
    function a(){}
    这个时候 function(){a()}() 会执行a();这个时候function a还没有定义
    function a(){} 放到function(){a()}()前面
      

  3.   


    不是这样的,我单独测试这个jq插件是没问题的,我知道是jq冲突了,问题是为什么会报a未定义
    function(){a()}()
    function a(){}
    这个时候 function(){a()}() 会执行a();这个时候function a还没有定义
    function a(){} 放到function(){a()}()前面
    报TypeError: a.eq(...).valuechange is not a function 
      

  4.   

    去看看javascript的逗号表达式执行顺序你就知道了.
      

  5.   


    不是这样的,我单独测试这个jq插件是没问题的,我知道是jq冲突了,问题是为什么会报a未定义
    function(){a()}()
    function a(){}
    这个时候 function(){a()}() 会执行a();这个时候function a还没有定义
    function a(){} 放到function(){a()}()前面
    报TypeError: a.eq(...).valuechange is not a function 
    代码不用换位置 能看看js怎么导入的吗
      

  6.   

    扩展jQuery方法
    应该要先定义了扩展方法valuechange,再使用的(function(a){
    a.fn.valuechange=function(){
    alert("这是一个jquery扩展方法");
    };
    })(jQuery);$("body").valuechange();