Некоторые из моих страниц используют как JQuery, так и Protoype. Поскольку я обновил JQuery до версии 1.3, это, похоже, вызывает проблемы, поскольку обе библиотеки определяют функцию с именем '$'.
JQuery предоставляет функцию noConflict (), которая передает контроль над $ другим библиотекам, которые могут его использовать. Похоже, мне нужно просмотреть все мои страницы, которые выглядят так:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
</head>
и измените их так:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
</head>
Затем я смогу использовать '$' для Prototype и '$ j' (или 'jQuery') для JQuery. Я не совсем доволен дублированием этих двух строк кода на каждой соответствующей странице и ожидаю, что в какой-то момент кто-то может забыть добавить их на новую страницу. Я предпочел бы иметь возможность сделать следующее
- Создайте файл j
query-noconflict.js
, который "включает" jquery.js
и две строки кода, показанные выше
- Импорт
jquery-noconflict.js
(вместо jquery.js
) во все мои страницы JSP / HTML
Однако я не уверен, возможно ли включить один файл JS в другой, как я описал? Конечно, альтернативное решение состоит в том, чтобы просто добавить 2 строки кода выше непосредственно в jquery.js, но если я сделаю это, мне нужно будет не забывать делать это каждый раз, когда я обновляю JQuery.