2010-10-07 10 views
2

Je ne parviens pas à supprimer le prototype d'un framework JSF (RichFaces 3.3.3). Et si j'essaie noConflict et que j'essaie de prendre en charge $ il casse mon framework d'application parce qu'il est étroitement associé au prototype.

Ainsi est-il une manière que je peux le faire:

jQuery(function() { 
    /* 
     some code that within this domready function 
     allows me to use $() within this function 
     and not interfere with $ being used for prototype 
     outside? 
    */ 
}); 

Répondre

7

Oui, il est déjà passé en tant que premier paramètre à votre gestionnaire ready, il suffit d'utiliser:

jQuery(function($) { 
    $("selector").doSomething(); 
}); 
//$ is still prototype here 
1

En général, vous pouvez écrire var $ = jQuery; pour remplacer le symbole $ dans une seule fonction.

Dans votre cas spécifique, vous pouvez également utiliser le premier paramètre du rappel.

0

prendre ce link comme référence, vous pouvez faire quelque chose comme ceci:

jQuery(function($) { // like Nick Craver 
}); 

et appeler les fonctions dont vous avez besoin d'avoir jQuery avec:

var yourFunction = function(){ 
    var $ = this; 
}; 

yourFunction.call(jQuery); 

... 

var yourFunction = (function($){ 

    return function() { 

     // $ -> jQuery 

    }; 

})(jQuery); 

... 

var yourFunction = (function(){ 

    var $ = this; 

    return function() { 

     // $ -> jQuery 

    }; 

}).call(jQuery); 
0

La norme dans mon groupe de travail:

jQuery.noConflict(); 
(function ($) { 
    //Do jQuery stuff using $ here. 
})(jQuery); 
//Do prototype stuff using $ here