Оглавление

1.3. Обработка конфликтных ситуаций

Как вы уже знаете, функция jQuery() имеет псевдоним $(). В некоторых других библиотеках (например, в Prototype) также объявлена функция $(). Если использовать такие библиотеки одновременно, то возникнет конфликт имен. Библиотека jQuery позволяет избежать этого конфликта. Для этого необходимо вначале подключить конфликтную библиотеку, а затем библиотеку jQuery. Сразу после подключения следует вызвать функцию noConf lict () .
jQuery.noConflict();
В этом случае библиотека jQuery освободит функцию $ () для использования другой библиотекой.
Если результат выполнения функции noConflict() присвоить какой-либо переменной, то ее имя можно использовать вместо функции $() (листинг 1.2).

 

 Листинг 1.2. Обработка ситуации конфликта имен

 

<html>
<head>
<title>Обработка конфликтных ситуаций</title>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<script type="text/javascript">
function $() {
   alert("Функция $() из другой библиотеки");
}
</script>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var jq = jQuery.noConflict();
</script>
</head>
<body>
<div id="div1"></div>
<script type= "text/javascript">
$(); // Вызов функции из другой библиотеки
jq("#div1").html("Пример использования библиотеки jQuery");
</script>
</body>
</html>

 

 В этом примере мы присвоили результат выполнения функции noConflict() переменной jq. Теперь можно использовать это имя в качестве названия функции.

jq("#div1").html ("Пример использования библиотеки jQuery");


Если результат нигде не сохранять, то обращение выглядит следующим образом.

jQuery("#div1").html("Примериспользования библиотеки jQuery");


Использовать функцию $() в данном случае уже нельзя, так как будет вызвана функция из другой библиотеки. Если же необходимо использовать функцию $() применительно к библиотеке jQuery, то можно поступить следующим образом.

(function($) {
	$("#div1").html("Пример использования библиотеки jQuery"); 
}) (jQuery);


Этим способом обычно пользуются при создании расширений (плагинов). Можно также воспользоваться следующим кодом.


jQuery(function($) {
$("#div1").html("Пример использования библиотеки jQuery");
});
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити