Это сломается? .... возможно :)
Есть две действительно распространенные причины, почему это произойдет. Если они используют другую библиотеку, которая использует $
для своего основного объекта, тогда вы получите конфликт, однако это можно решить с помощью jQuery.noConflict()
, например:
var $j = jQuery.noConflict(); //give `$` back to whatever had it...
$j("selector").doSomething(); //use the $j you assigned or jQuery from now on
Другой вариант: у них уже загружен jQuery (возможно, другая версия). Я бы просто добавил jQuery
объектный тест перед загрузкой вашего скрипта, например:
if (typeof jQuery == 'undefined') { //load jQuery }
//jQuery has been loaded, either by your or originally, keep going...
У этого решения для уже загруженных есть одно предупреждение: если у них была старая версия jQuery, у вас будут только функции этой версии. Я не знаю, как загрузить старую версию и новую на страницу, и у меня не было странного поведения ... он просто не был предназначен для этого.
Кроме того, я бы объединил эти два обходных пути для случая, когда jQuery уже загружен и равен $
, например:
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.