www.Litecode.ru – Сборник рецептов для создания сайтов

Prototype и jQuery

ГлавнаяJavaScript → Prototype и jQuery

Библиотека prototype.js прижилась в веб программировании раньше чем jquery. И всвязи с этим случается так, что нужно внедрить некоторые фичи jquery в проект, который уже использует prototype. В этом случае возникнут проблемы. Дело в том, что обе эти библиотеки используют функцию $() в своих пространствах имен. Следовательно работать будет та, которая будет загружена последней. Последняя библиотека переопределяет эту функцию под себя.

На самом деле ничего суперсложного предпринимать, для устранения проблемы, не требуется. Достаточно лишь в коде jquery не употреблять обращение к методам через $, а использовать уникальное имя класс jQuery. Например:

Вместо $('#elementID').css('display') использовать  jQuery('#elementID').css('display')

Но если этого мало, к счастью разработчики jquery позаботились об этой проблеме. В ядре jquery существует специальный режим $.noConflict(). И если не хочется переписывать javascript — код, то можно вполне использовать такие библиотеки совместно.

Пример использования prototype и jquery:

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  //так мы просто не мешаем библиотеке prototype, и ее код продолжает работать
</script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    //в этом блоке можно выполнять код на jquery, используя функцию $()
  });
//А здесь функция $() определена для prototype
</script>

Это два самых элементарных примера совместного использования jquery с другими библиотеками. Более подробная информация на официальном сайте jquery.com. А лучше возьмите в привычку всегда использовать обращение jQuery, так как $ для этой бибилиотеки всего лишь алиас.