2010-04-25 10 views

Respuesta

3

Va a romper? .... quizá :)

Hay 2 razones muy comunes de la parte superior de la cabeza que esto iba a pasar. Si ellos están usando otra biblioteca que utiliza el $ por su objeto principal, entonces obtendrá un conflicto, sin embargo, esto se puede resolver con jQuery.noConflict(), así:

var $j = jQuery.noConflict(); //give `$` back to whatever had it... 
$j("selector").doSomething(); //use the $j you assigned or jQuery from now on 

La otra sería que ya tienen jQuery cargado (posiblemente una versión diferente también). Me basta con añadir una prueba jQuery objeto antes de cargar la secuencia de comandos, así:

if (typeof jQuery == 'undefined') { //load jQuery } 
//jQuery has been loaded, either by your or originally, keep going... 

Esta solución ya cargado tiene una advertencia, si tenían una vieja versión de jQuery , sólo tendrá las características de esa versión. No sé de una manera de cargar una versión anterior y una nueva en la página y no tener un comportamiento extraño ... simplemente no fue diseñado para hacer eso.

Además, me gustaría combinar estas dos soluciones temporales para el caso de que jQuery ya está cargado y es la $, así:

if (typeof jQuery == 'undefined') { 
    var used = typeof $ != 'undefined'; 
    //load jQuery 
    if(used) jQuery.noConflict(); 
} 
window.$j = jQuery; 
//always use $j in your script, it'll always be present. 
+0

¿Y esto? $ j (document) .ready (function() {// Aquí cosas como $ (selector)} ¿No está bien? –

+0

Por cierto, gracias por la gran respuesta! :) –

+1

@Martti - Puede ajustar su código así que $ funciona dentro de él, así: '(función ($) {$ (función() {/ * documento.actualizar * /});/* otras cosas usando $() * /}) (jQuery) ; ' –

Cuestiones relacionadas