Некоторые из моих страниц используют как JQuery, так и Protoype. Поскольку я обновился до версии 1.3 JQuery, это вызывает проблемы, потому что обе библиотеки определяют функцию с именем "$".
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
и 2 строки кода, показанные выше - Импортировать
jquery-noconflict.js
(вместоjquery.js
) во все мои страницы JSP/HTML
Однако я не уверен, можно ли включить один JS файл в другой, как я описал? Конечно, альтернативное решение состоит в том, чтобы просто добавить 2 строки кода выше в jquery.js напрямую, но если я это сделаю, мне нужно будет помнить, что нужно делать это каждый раз, когда я обновляю JQuery.