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

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

[Решено] Конфликт библиотек jquery (jQuery Masked и стандартные библиотеки Joomla)

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

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

Сообщений: 46


« : 08.02.2016, 08:22:43 »

Здравствуйте!
Подключил на сайт Joomla 3 скрипт jQuery Masked, который отображает форму для ввода текста, то есть вместо обычного белого поле отображается форма ввода телефона, например.
И после подключения заметил проблему. В карточке товара есть фото, и они стали отображаться друг под другом, хотя раньше они отображались как надо (одна главная фотография, под ней три маленьких) при клике происходит увеличение и просмотр фото.
Модули с использование jQuery Masked выведены слева это: "При заказе у своих - узнайте наши условия", "Затрудняетесь в выборе двери? Подскажем!". Если их отключить или просто убрать использование jQuery Masked, то все в карточке работает.
Вот так выглядет код, который отвечает за показ формы ввода в поле:
Код:
<script type="text/javascript">
$(function(){

$("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");

});
</script>
По мимо этого к сайту была подключена библиотека jQuery.
Ссылка на сайт (карточка товара): http://www.dvernoyclub.ru/katalog/alit
Подскажите, пожалуйста, в чем может быть проблема и как ее лучше всего убрать? Возможно я надподключал лишнего или сделал что-то не так.
Пробовал ставить плагин jQuery Easy - результата нет.

Решение:
Извиняюсь за задержку в рассказе, как удалось починить.
1. Удалил код скрипта из модуля
2. Прописал код скрипта в index.php:
Код:
     <script>
       $.noConflict();
 
 jQuery(function($){
   $("#phone").mask("+7 (999) 999-99-99");
   $("#phone_p").mask("+7 (999) 999-99-99");

});
 
      </script>
« Последнее редактирование: 11.02.2016, 23:51:48 от hottab_1 » Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #1 : 08.02.2016, 09:52:55 »

это не конфликт.
у вас просто код надо обернуть в оболочку
Код:
<script type="text/javascript">
jQuery(function($) {
  тут ваш код
});
</script>

вообще, в таких случаях смотрите к консоль файербага во вкладке "ошибки"
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #2 : 08.02.2016, 12:00:48 »

это не конфликт.
у вас просто код надо обернуть в оболочку
Код:
<script type="text/javascript">
jQuery(function($) {
  тут ваш код
});
</script>


вообще, в таких случаях смотрите к консоль файербага во вкладке "ошибки"



Сделал вот так, возможно неправильно:
Код:
<script type="text/javascript">
jQuery(function($) {
  $("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");
});
</script>
Перестала работать маска ввода, но фото по прежнему отображаются косо.
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #3 : 08.02.2016, 12:10:10 »

а если так

Код:
<script type="text/javascript">
jQuery(function($) {
$(document).ready(function($){
  $("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");
});
});
</script>
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #4 : 08.02.2016, 12:32:32 »

а если так

Код:
<script type="text/javascript">
jQuery(function($) {
$(document).ready(function($){
  $("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");
});
});
</script>
К сожалению, не помогло.
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #5 : 08.02.2016, 12:36:28 »

куда вставляете код?
я не вижу на сайте последних изменений
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #6 : 08.02.2016, 12:41:28 »

куда вставляете код?
В модуль, который выводит блок "Затрудняетесь в выборе двери". Код модуля выглядет вот так сейчас:
Код:
{rsform 10}



<script type="text/javascript">
jQuery(function($) {
$(document).ready(function($){
  $("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");
});
});
</script>
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #7 : 08.02.2016, 12:45:52 »

а вот это откуда берется

Код:
 <script type="text/javascript">
jQuery(function(){
    jQuery(".mask").mask("(999) 999-9999");
});
</script>

вы ещё куда-то вставили код и не стерли потом
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #8 : 08.02.2016, 13:42:37 »

а вот это откуда берется

Код:
  <script type="text/javascript">
jQuery(function(){
    jQuery(".mask").mask("(999) 999-9999");
});
</script>

вы ещё куда-то вставили код и не стерли потом
Да, понял где. Я удалю попозже и отпишусь о результате. По идеи должно все работать?
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #9 : 08.02.2016, 13:48:25 »

по идеи надо сделать и посмотреть.
Записан
fsv
Практически профи
*******

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

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


« Ответ #10 : 08.02.2016, 15:54:36 »

а если так
масло масляное
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #11 : 08.02.2016, 16:00:39 »

ничего не знаю, он сам виноват, что не убрал старый код - путь теперь масло с маслом ест )
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #12 : 08.02.2016, 17:13:08 »

а вот это откуда берется

Код:
  <script type="text/javascript">
jQuery(function(){
    jQuery(".mask").mask("(999) 999-9999");
});
</script>

вы ещё куда-то вставили код и не стерли потом

Поискал, нигде не вставлен код. Он появляется, когда включаешь модуль в котором прописан код:
Код:
<script type="text/javascript">
jQuery(function($) {
$(document).ready(function($){
  $("#phone").mask("+7 (999) 999-99-99");
$("#phone_p").mask("+7 (999) 999-99-99");
});
});
</script>
Отключаем модуль - пропадет код в head:
Код:
  <script type="text/javascript">
jQuery(function(){
    jQuery(".mask").mask("(999) 999-9999");
});
</script>
Записан
effrit
Группа развития
*****

Репутация: +731/-7
Online Online

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


effrit.com


« Ответ #13 : 08.02.2016, 17:27:16 »

ну так не бывает. ищи в этом модуле где второй раз прописано
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #14 : 08.02.2016, 20:41:56 »

ну так не бывает. ищи в этом модуле где второй раз прописано
Хорошо, буду искать, спасибо.
Записан
Arkadiy
Группа развития
*****

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

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


Крепитесь, други.


« Ответ #15 : 08.02.2016, 20:53:40 »

У вас ошибка
Код:
TypeError: jQuery(...).mask is not a function
Это происходит из-за того, что вы каким-то образом подключаете скрипты
Код:
<script type="text/javascript" src="/js/jquery-1.7.2.min.js" ></script>
<script type="text/javascript" src="/js/jquery.maskedinput-1.3.min.js"></script>
в начале head. Потом идет подключение основных скриптов сайта, среди которых второй раз подключается jQuery. После второго подключения jQuery уже не знает о том, что такое jQuery(...).mask.
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #16 : 08.02.2016, 23:42:49 »

У вас ошибка
Код:
TypeError: jQuery(...).mask is not a function
Это происходит из-за того, что вы каким-то образом подключаете скрипты
Код:
<script type="text/javascript" src="/js/jquery-1.7.2.min.js" ></script>
<script type="text/javascript" src="/js/jquery.maskedinput-1.3.min.js"></script>
в начале head. Потом идет подключение основных скриптов сайта, среди которых второй раз подключается jQuery. После второго подключения jQuery уже не знает о том, что такое jQuery(...).mask.
То есть нужно убрать одно подключение jquery?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7774



« Ответ #17 : 08.02.2016, 23:48:55 »

да, не должно быть нескольких копий. это как правило всегда приводит к "непонятному" поведению
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #18 : 09.02.2016, 00:12:17 »

Результат, к сожалению, нет.
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #19 : 09.02.2016, 01:15:17 »

Уделал. Завтра отпишусь как решил проблему. Всем большое спасибо!
Записан
hottab_1
Осваиваюсь на форуме
***

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

Сообщений: 46


« Ответ #20 : 11.02.2016, 23:50:18 »

Извиняюсь за задержку в рассказе, как удалось починить.
1. Удалил код скрипта из модуля
2. Прописал код скрипта в index.php:
Код:
     <script>
       $.noConflict();
 
 jQuery(function($){
   $("#phone").mask("+7 (999) 999-99-99");
   $("#phone_p").mask("+7 (999) 999-99-99");

});
 
      </script>
Записан
Страниц: [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