Я думаю, все очень часто сталкивались с тем, что нужно было подключить сторонние JSскрипты. И тут возникала проблема что подключенный скрипт не работает.
Конечно, одни советую отключать Mootools, но зачем же? Ведь много компонентов используют его, да и разработчики joomlaне зря его используют тоже.
Так тут один выход – совмещать эти библиотеки. Возникает вопрос как? Тут на помощь нам приходит
jQuery.noConflict();
Использовать его нужно при подключении Вашего стороннего скрипта
<script type="text/javascript" src=".js">jQuery.noConflict();</script>
И еще обязательно использовать это перед тем где Вы подключаете
<jdoc:include type="head" />
Ведь именно здесь joomlaподключить все необходимые библиотеки для себя.
Также можно использовать следующие варианты:
1. Для jQuery кода вместо $ использовать jQuery
JQuery("divspan").hide();
2. Вместо jQuery использовать другое имя:
var k=jQuery.noConflict();
k("div span").hide();
А теперь давайте копнем, почему же возникает этот конфликт?
При подключении <jdoc:include type=«head» />, мы подключили и mootools. А там система зарезервировала $ за собой. Вот и возникает конфликт из-за пространства имен.
На последок, давайте поговорим про jQuery.noConflict().(очень красиво описано на http://jquery.page2page.ru)
Освобождает переменную $, чтобы избежать конфликтов имен. Метод имеет один вариант использования:
jQuery.noConflict([removeAll]);
removeAll — необязательный параметр типа boolean, при значении true функция освободит все имена переменныых, занятые библиотекой jQuery. По умолчанию, равен false.
Многие другие javascript библиотеки, так же как и jQuery используют $ как имя переменной или функции. Однако, в случае jQuery, $ является синонимом (алиасом) идентификатора jQuery. Поэтому, при освобождении имени $ с помощью jQuery.noConflict() мы не теряем функциональности библиотеки jQuery, посколько можем использовать вместо него jQuery.
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
// Далее может следовать код с использованием $ других библиотек.
</script><span> </span>
К сожалению, отключение идентификатора $ может привести к неправильной работе некоторых плагинов jQuery. Для этого случая существует следующий трюк:
jQuery.noConflict();
(function($){
// здесь $ будет действовать как алиас jQuery
})(jQuery);
// здесь $ будет доступен для других библиотек
То есть, мы можем вернуть алиас $ для jQuery локально — для кода, находящегося внутри функции, заданной указанным образом. Этот трюк можно использовать с методом .ready():
jQuery.noConflict();
jQuery(document).ready(function($) {
// здесь $ будет действовать как алиас jQuery
});
// здесь $ будет доступен для других библиотек
Можно сделать вывод, если Вы подключаете сторонний скрипт, лучше всего использовать то, что было описано в самом начале. И не париться с заменой имен $ на JQuery или другое через переменную.
Но если Вы пишите свой скрипт, так конечно лучше сразу учесть возможность конфликта и с умом использовать имена и обращения к ним.
Удачи Вам! И помните –
ВСЕ ГЕНИАЛЬНОЕ ПРОСТО НО НЕ ВСЕ ПРОСТОЕ ГЕНИАЛЬНО
2. Вместо jQueryиспользовать другое имя:
вообще то я пробел пропустил после var. Но спасибо, не заметил что упустил его)
в HTML представлении код правь. Иначе мазня получается.
ok. Спасибо за совет
Перенос строки внутри параграфа (цитаты, кода) работает на Ctrl+Enter. Enter создает новый параграф.
Благодарю за совет, вот я научался пока кусочек кода редактировал, это ужас, каждый раз в html представление переключался чтобы вставит в код <br/>. А в превью, код растянулся в одну строку, как я его не редактировал. Плюнул оставил как есть, оказалось что в статье нормально все смотрится. На параграф кода убил кучу времени, что бы более менее нормально его оформить.
Зря Вы так. Видите же что получилось. На превью может вытянуться, но в публикации все в норме становится.
Уже тестируем обновление редактора, скоро заменим.
Ну теперь то, буду знать :)
Автор, Вы бы отредактировали код статье. Видимо нужно создать мануал по пользованию вызуальным редактором. Горячие клавиши перечислить и основные действия.
Исправил.
спасибо, все замечания учту.