最近在工作中发现个问题,原本好好的网页,写了一些自己的jquery代码之后,竟然总是不起作用,无论写的多么简单,都不起作用,似乎jquery失效了一般,在火狐下调试看了下,页面报TypeError $(...) is null这种错误,找了半天原因最后发现竟是页面中加载的一个插件给捣的鬼,是它将jquery的$方法给覆盖了。对于这个问题,现在分享两种解决方法。
(1)删冲突插件,jquery作为基础库,当然是没有理由被删了。这个方法最直接了。
(2)将jquery的$方法改名,具体改名方法如下:
1 | jQuery.noConflict(); //将变量$的控制权让渡给给其他插件或库 |
2 | jQuery( function (){ //不在直接使用$,而是使用jQuery |
3 | jQuery( "p" ).click( function (){ |
4 | alert( jQuery( this ).text() ); |
5 | }); |
6 | }); |
当然如果你感觉jquery写起来比较累,还可以这么写:
1 | var $phpernote=jQuery.noConflict(); //自定义一个比较短快捷方式 |
2 | $phpernote( function (){ //使用jQuery |
3 | $phpernote( "p" ).click( function (){ |
4 | alert( $phpernote( this ).text() ); |
5 | }); |
6 | }); |