Форум русской поддержки Joomla!® CMS
11.12.2016, 17:52:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

jquery Joomla 3

 (Прочитано 1538 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bubanay
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 59


« : 13.05.2015, 13:35:05 »

Почему-то на Joomla 3, не работают функции jquery(шаблон самописный).
Не могу заставить работать без ошибок простую функцию
Код:
$(function(){
      $(".c").click(function (){
      $(".h").slideToggle("slow");
   });
});

Joomla 3, по умолчанию подключается библиотека jquery, с ней функция не работает.

Подключаю библиотеку в шаблон повторно, при вызове функции по клику происходит ошибка

Код:
TypeError: $ is not a function
$(".h").slideToggle("slow");

Нашел статейку как не подгружать предустановленные библиотеки
http://blog.pbelkov.net/2012/10/02/joomla-3-0-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D0%BD%D0%B5%D0%BD%D1%83%D0%B6%D0%BD%D1%8B%D0%B5-js-%D1%81-%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D1%87%D0%B0%D1%81/

отключил дефолтную библиотеку jquery:
Код:

<?php
   $headlink = $this->getHeadData();
   unset($headlink['scripts']['/media/jui/js/jquery.min.js']);
   $this->setHeadData($headlink);
?>

Скрипт заработал, но выскочили ошибки в библиотеках
/media/jui/js/jquery-noconflict.js и
/media/jui/js/jquery-migrate.min.js:

ReferenceError: jQuery is not defined
jQuery.noConflict();

За что отвечают эти библиотеки? Если их закрыть ошибки пропадают и остается последняя ошибка на участок кода который то же подгружается в head автоматически.

Ошибка ReferenceError: jQuery is not defined
Код:
 
<script type="text/javascript">
   jQuery(window).on('load',  function() {
   new JCaption('img.caption');
   });
</script>

Вопрос в том как мне заставить работать скрипт без ошибок. Зачем нужны библиотеки jquery-noconflict.js и jquery-migrate.min.js, можно ли их не подгружать?
За что отвечает последний участок кода и где его искать если удалять? Скорее всего это капча к модулю Jcoments.


   
« Последнее редактирование: 13.05.2015, 13:41:41 от bubanay » Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #1 : 13.05.2015, 13:52:01 »

Цитировать
отключил дефолтную библиотеку jquery:

Не надо ничего отключать, ваш код должен быть таким:
Код
(function($){
  $(".c").click(function (){
     $(".h").slideToggle("slow");
  });
})(jQuery);
 
Записан
bubanay
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 59


« Ответ #2 : 13.05.2015, 13:55:06 »

напрямую в шаблон не заработало, но сработало когда подключил код в позицию через плагин Sourcerer. А напрямую из шаблона можно заставить работать код? Из редактора Joomla крайне не удобно что-то править.
« Последнее редактирование: 13.05.2015, 14:10:11 от bubanay » Записан
umbabaraumba
Практически профи
*******

Репутация: +153/-1
Offline Offline

Пол: Мужской
Сообщений: 2558

если помог можете поставить +


« Ответ #3 : 13.05.2015, 14:39:08 »

$(function(){
      $(".c").click(function (){
      $(".h").slideToggle("slow");
   });
});      
Попробуйте заменить $ на jQuery
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #4 : 13.05.2015, 14:51:12 »

напрямую в шаблон не заработало
не учтено .ready()
попробуйте:
Код
jQuery(function($) {
 //ваш код
});
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #5 : 13.05.2015, 15:18:10 »

fsv, может вы имели ввиду:
Код
jQuery(document).ready(function($) {
//...
});
 
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #6 : 13.05.2015, 15:32:59 »

fsv, может вы имели ввиду:
Нет.
Приведенная конструкция совмещает 2 в 1: ноуконфликт + реди.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #7 : 13.05.2015, 15:33:48 »

Нет.
Приведенная конструкция совмещает 2 в 1: ноуконфликт + реди.

Круто, не знал
Записан
bubanay
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 59


« Ответ #8 : 13.05.2015, 16:27:28 »

jQuery(function($) {...}); работает, спасибо.

Подскажите как работают следующие конструкции(в какой момент подгружаются и можно ли их использовать в head) и какие из них одно и то же, какая более новая. Я думал это одно и то же.
jQuery(function($) {...})
(function($){...})(jQuery);
$(document).ready(function() {...});
$(function(){...});   

На HTML макете у меня прекрасно работае $(function(){...}) на Joomla почему-то не работает
« Последнее редактирование: 13.05.2015, 16:38:24 от bubanay » Записан
NesDmitrijj
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 14


« Ответ #9 : 13.05.2015, 19:19:45 »

Не буду создавать новую тему и напишу тут.
Где правильнее подключить
Код:
JHtml::_('jquery.framework');
?
В index.php сайта - рано, сайт не верно отображает язык контента (в HTML теге head).
В index.php шаблона - поздно, некоторые скрипты не загружаются/отрабатывают (пишет ReferenceError: jQuery is not defined).
Так куда-же мне приткнуть подключение jquery.framework?
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #10 : 13.05.2015, 20:16:04 »

bubanay, используйте первый вариант, в большинстве случаев он оптимальный. Варианты 3 и 4 чреваты конфликтами. Вариант 2 больше подходит для написания плагинов.

NesDmitrijj, Подключайте jQuery там где вам необходимо его использовать. Если какие-то скрипты используют jquery не подключив саму библиотеку предварительно это проблема самих скриптов.
Записан
rsn
Осваиваюсь на форуме
***

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 159



« Ответ #11 : 29.08.2015, 14:10:35 »

не учтено .ready()
попробуйте:
Код
jQuery(function($) {
 //ваш код
});

Большое спасибо! Я до этого везде $ менял на jQuery ))) И тут случайно наткнулся.
Думаю, такое решение должно быть отражено в FAQ по Joomla 2.5+, 3+
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #12 : 30.08.2015, 10:08:46 »

Большое спасибо! Я до этого везде $ менял на jQuery ))) И тут случайно наткнулся.
Думаю, такое решение должно быть отражено в FAQ по Joomla 2.5+, 3+
Тут как бы Joomla вообще не причем - знание JS, вот и всё.
Записан
Омск
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 98


« Ответ #13 : 11.02.2016, 10:47:05 »

Как подключить Jquery в joomla3? Я искал в интернете, но не понял, куда писать код.

Я установил модуль меню на этот сайт, но он не работает, т.к. не подключена эта библиотека.

Пишут, что код надо писать в теге head, но я не нашел нигде этого тега.
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #14 : 11.02.2016, 11:06:52 »

Я установил модуль меню на этот сайт, но он не работает, т.к. не подключена эта библиотека.

А вы меньше с вареза качайте!
Прикрепил вам качественное меню. Попробуйте.

* pkg_dj-megamenu-AIO-3.0.2.zip (75.13 Кб - загружено 19 раз.)
Записан
Омск
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 98


« Ответ #15 : 11.02.2016, 15:05:24 »

Меню ваше поставил на этот сайт, тут тоже анимация никакая не работает, и расположено оно почему-то не в одну строку.
Или я не те настройки поставил?
Записан
AlekVolsk
Профи
********

Репутация: +317/-3
Online Online

Пол: Мужской
Сообщений: 6463



« Ответ #16 : 11.02.2016, 15:11:54 »

а какую анимацию вы хотите? пользуйтесь стандартным модулем меню, его возможностей более чем достаточно, его внешний вид - это просто стили, его анимация - это ... тоже стили! и нефиг перегружать сайт   скриптами, там jq и так за глаза весит дохрена
Записан
Омск
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Пол: Мужской
Сообщений: 98


« Ответ #17 : 11.02.2016, 15:37:22 »

Мне поставили задачу сделать меню с анимацией, я сам пока не могу анимацию сделать, вот и ищу модуль.

Анимация нужна как в этом модуле или подобная.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet