Как изменить пространство имен jQuery? - PullRequest
2 голосов
/ 08 октября 2009

Я работаю над библиотекой, которая внутренне использует jQuery, которая прекрасно работает. Но я не хочу заставлять пользователя использовать мою версию jQuery только потому, что он использует мою библиотеку в своем коде.

Итак, вопрос в том, как я могу использовать jQuery под другим именем?

Достаточно ли сделать что-то вроде этого:

var mylib.jQuery = {};  
mylib.jQuery = jQuery.noConflict(true);

Это сделает jQuery доступным под mylib.jQuery и освободит символ $, но оригинальный символ jQuery все еще работает (что я думаю, не очень хорошо).

Ответы [ 2 ]

5 голосов
/ 08 октября 2009

Вам нужно будет зайти в источник, потому что там определен window.jQuery, и просто обновить ссылочное имя.

Это похоже на необоснованный запрос.

Edit: похоже, все, что вам нужно сделать, это установить ссылку на $ .noConflict:

<script src="jquery.js"></script>
<script>
var foo = {};
foo.jQuery = jQuery.noConflict( true );
alert( typeof jQuery );
alert( typeof $ );
alert( typeof foo.jQuery );
</script>

Вы должны сделать это сразу после включения сценария. Мой предыдущий способ сделал это прямо в скрипте:

http://173.45.226.115/jquery.html

1 голос
/ 08 октября 2009

Указав true в jQuery.noConflict(true);, он устанавливает noConflict в экстремальный режим и должен сделать так, чтобы он не конфликтовал с какой-либо другой библиотекой. Я думаю, это должно быть первое, что вы определяете где угодно, поэтому код / ​​плагин jQuery не должен появляться до var mylib.jQuery = jQuery.noConflict(true);

...