我做了一个网页,使用的是jquery-1.8.1,本来使用正常,但是添加了一些附加功能的代码,然后突然发现jquery失效了,hide()/show()/remove()这些方法都不能用了,然后我把后来加的代码全部给删掉了,但是还是没反应,缓存清空也试了,没用。
求教一下,jquery在哪些情况下会失效?语法正常的情况下。jquery

解决方案 »

  1.   

    但是添加了一些附加功能的代码添加了什么功能?插件?
    建议firebug 调试下 什么错误.
      

  2.   

    看一看jquery的工厂函数 $ 是不是被覆盖了。
    如果不太确定,就交出$的控制权测试一下。var jq=$.noConflict();
    alert(jq); 如果没有东西弹出,或在ie左上角有报错,且报错信息为:
    'null' 为空或不是对象
    在firefox下firebug控制台的报错信息为:
    TypeError: $(...) is null
    就说明被覆盖,如果弹出的是:function (a,b){return new p.fn.init(a,b,c)}那说明不是这个问题,在检查一个jquery的主文件路径是不是被修改,或者其它地方有没有明显的语法错误,多个分号,大括号之类的。
      

  3.   

    本来我用的是IE的调试,刚才试了一些FF的,确实提醒TypeError: $(...) is null,怎么解决呢?
      

  4.   

    两个方法,一个是换了jq的$,比如你改成jq,
    另一个去看看谁占了$,删除它。
      

  5.   

    如果确认是这个问题,有两种办法解决:
    1. 找到那个覆盖的 $函数,改个名字,加个id(变成$id)或者直接叫id都行,无论怎样,都不要是$。
    2. 建立一个立即执行函数包起来,建立一个单独的作用域,传jQuery参数进去,在执行内部继续使用$。function $(){ // change to id
        return document.getElementById(arguments[0]);
    }
    //var jq=$.noConflict();
    //alert(jq);
    (function($){
        var jq=$.noConflict();
        alert(jq);
    }(jQuery));