$ is not a function

来源:互联网 发布:阿里云 erp 编辑:程序博客网 时间:2024/04/30 22:47

在使用jquery 开发的时候,莫名其妙的碰到一个问题..

$ is not a function .

 

在baidu了好久没有找出答案的时候。google了一下。终于看到了老外的一篇文章。

 

原文如下:

原文地址:http://www.adrogen.com/blog/jquery-conflict-is-not-a-function/

 

Recently I ran into an issue  while trying to use jQuery on a custom WordPress based Content Management System.  This particular system had a number of instances in which the framework was being referenced.  Normally you insert jQuery code using the dollar sign ($) like so:

view plaincopy to clipboardprint?
  1. $(document).ready(function() {   
  2.    $("a").click(function() {   
  3.      alert("Hello world!");   
  4.    });   
  5.  });  

The problem arises when a different system grabs the $ variable.  All of the sudden you have multiple $ variables being used as objects from multiple libraries, resulting in the error console message “$ is not a function”.

Fortunately there is a pretty easy way of fixing this in the form of jQuery.noConflict.  Running this function gives control of the $ variable back to whichever library first implemented it.  This will help to ensure that jQuery won’t conflict with other instances of the $ object in other libraries.

But please note, in doing this, you are re-assigning the variable so you will only be able to access jQuery commands using the ‘jQuery’ variable (which has just replaced ‘$’).  So our above code example would look something like this:

view plaincopy to clipboardprint?
  1. jQuery.noConflict();   
  2. jQuery(document).ready(function() {   
  3.    jQuery("a").click(function() {   
  4.      alert("Hello world!");   
  5.    });   
  6.  });  

It doesn’t seem to be a very common problem and only occurs when multiple instances of the object crop up, but that’s easy to do in WordPress when multiple plugins begin conflicting with each other.   Follow the link for the  full jQuery documentation on jQuery.noConflict

 

 

 

把 $ 全部替换为 JQuery 就OK 了。

 

其中关键的在于 jQuery.noConflict();   这句话