Вход • Регистрация

Конфликт библиотек jQeury

  • 06 мая 2015 г. , редакция: 06 мая 2015 г.
  • В дизайне присутствуют модальные окна, вызываются jquery.tools.min.js
    Все конфликты погасил воткнув скрипт в самый конец кода, и добавив $.noConflict();
    Код
    <!--<script src="/js/jquery.tools.min.js"></script>
    <script>
    $.noConflict();
    jQuery(document).ready(function($) {

    // if the function argument is given to overlay, it is assumed to be the onBeforeLoad event listener
    $("a[rel]").overlay(function() {

    // grab wrapper element inside content
    var wrap = this.getContent().find("div.wrap");

    // load only for the first time it is opened
    if (wrap.is(":empty")) {
    wrap.load(this.getTrigger().attr("href"));
    }
    });
    });

    </script>-->

    Головоломная проблема осталась в том, что PrettyPhoto.js пинает свое модальное окно при увеличении картинки вообще в самый конец кода страницы, уже после jquery.tools.min.js
    Таким образом анимация работать перестаёт.
    Куда копать, подскажите, не сочтите за труд.

    ps: Странно, добавлял тему в раздел Интеграция дизайна..
    • 06 мая 2015 г.
    • И да, тут тоже добавление комментария либо объявления все рушило..
  • 06 мая 2015 г.
  • Далее перенес вверх страницы между head вызов скрипта модальных окон,
    создал другой псевдоним..
    Код
    <script src="/js/jquery.tools.min.js"></script>
    <script>
    var j = jQuery.noConflict();
    j(document).ready(function() {

    // if the function argument is given to overlay, it is assumed to be the onBeforeLoad event listener
    j("a[rel]").overlay(function() {


    Все заработало, анимация, скрипты редактирования..... я уж было обрадовался, но после активации модального окна, при попытке добавить комментарий, вылетает белая страница с кучей знаков, самым понятным из которых является первое слово {"errors":{"captcha":"u04.......
    • 07 мая 2015 г.
    • Сложно что-то сказать, подробно не изучив ваш сайт.
      А вот у меня была на днях проблема, когда PrettyPhoto отказывался работать без непосредственного подключения (делал увеличение фото слайдеров при нажатии):
      Код
      <script type="text/javascript" src="<insert name="path"><insert name="custom" path="js/jquery.jcarousellite.js">" charset="UTF-8"></script>
      • 07 мая 2015 г. , редакция: 07 мая 2015 г.
      • Сайт на локалке пока в процессе отладки.

        На данный момент работает все, кроме форм добавления комментариев, объявлений..
        И то перестают работать только после активации модального окна.

        Если форма комментария заполнена корректно - вылезает такая штука (но сам отправленный комментарий добавляется):
        Код
        {"captcha":"<div class="block captcha">
        <img src="http://site.ru/captcha/get/comments06754" width="159" height="80" class="code_img captcha-image">
        <input type="hidden" name="captchaint" value="6754">
        <input type="hidden" name="captcha_update" value="">

        <span class="input-title">u0412u0432u0435u0434u0438u0442u0435 u043au043eu0434 u0441 u043au0430u0440u0442u0438u043du043au0438:</span>
        <input type="text" name="captcha" value="" autocomplete="off">
        <br>
        <div class="js_captcha_update captcha_update"><a href="javascript:void(0)" class="button-refresh">&nbsp;</a></div></div><div class="errors error_captcha" style="display:none"></div>","add":"<div class="comment"><a name="comment3"></a><div class="comments_name"><a href="http://site.ru/user/?name=admin"><img src="http://site.ru/userfiles/avatar_none.png" width="50" height="50" alt="site.ru (admin)" class="avatar"> site.ru (admin)</a></div><div class="comments_date"><span class="useradmin_contener" href="http://site.ru/useradmin/edit/?module_name=comments&amp;name=created&amp;element_id=3&amp;lang_id=0&amp;type=date&amp;rand=404&amp;iframe=true&amp;width=300&amp;height=250">1 u043cu0438u043du0443u0442u0443 u043du0430u0437u0430u0434</span></div><div class="comments_text"><span class="useradmin_contener" href="http://site.ru/useradmin/edit/?module_name=comments&amp;name=text&amp;element_id=3&amp;lang_id=0&amp;type=editor&amp;rand=445&amp;iframe=true&amp;width=800&amp;height=600">2222</span></div>
        <a href="javascript:void(0)" class="js_comments_show_form comments_show_form">u041eu0442u0432u0435u0442u0438u0442u044c</a>
        <div style="display:none;" class="comments_block_form comments3_block_form"><div class="comments_form">
        <form method="POST" action="" id="comments3_result" class="ajax" enctype="multipart/form-data">
        <input type="hidden" name="module" value="comments">
        <input type="hidden" name="action" value="add">
        <input type="hidden" name="form_tag" value="comments3">
        <input type="hidden" name="parent_id" value="3">
        <input type="hidden" name="element_id" value="1">
        <input type="hidden" name="module_name" value="ab">
        <input type="hidden" name="element_type" value="element">
        <input type="hidden" name="tmpcode" value="ec0805f013b5bb2f8231160d0ac06b48"><textarea name="comment"></textarea><div class="errors error" style="display:none"></div><div class="infoform">u041fu043eu0434u043fu0438u0441u0430u0442u044cu0441u044f u043du0430 u043au043eu043cu043cu0435u043du0442u0430u0440u0438u0438 (u0432u043fu0438u0448u0438u0442u0435 e-mail):</div><input name="mail" type="email" value=""><div class="errors error_mail" style="display:none"></div><br><div class="captcha"><div class="block captcha">
        <img src="http://site.ru/captcha/get/comments36683" width="159" height="80" class="code_img captcha-image">
        <input type="hidden" name="captchaint" value="6683">
        <input type="hidden" name="captcha_update" value="">

        <span class="input-title">u0412u0432u0435u0434u0438u0442u0435 u043au043eu0434 u0441 u043au0430u0440u0442u0438u043du043au0438:</span>
        <input type="text" name="captcha" value="" autocomplete="off">
        <br>
        <div class="js_captcha_update captcha_update"><a href="javascript:void(0)" class="button-refresh">&nbsp;</a></div></div><div class="errors error_captcha" style="display:none"></div></div><input type="submit" value="u041eu0442u043fu0440u0430u0432u0438u0442u044c" class="button solid"></form>
        </div></div><div class="comments_level comments3_result" style="display:none;"></div></div>","data":{".comments0_block_form":false},"result":"success","js":"<script type="text/javascript" src="http://site.ru/cache/js/7607780ae28547754e9bee71ba3f60fe.js"></script>"}


        Если, допустим, не ввести капчу, получается следующее:
        Код
        {"errors":{"captcha":"u0412u0432u0435u0434u0438u0442u0435 u0437u0430u0449u0438u0442u043du044bu0439 u043au043eu0434","0":"u0412u044b u0437u0430u0431u044bu043bu0438 u0432u0432u0435u0441u0442u0438 u0442u0435u043au0441u0442 u043au043eu043cu043cu0435u043du0442u0430u0440u0438u044f"},"captcha":"<div class="block captcha">
        <img src="http://site.ru/captcha/get/comments02798" width="159" height="80" class="code_img captcha-image">
        <input type="hidden" name="captchaint" value="2798">
        <input type="hidden" name="captcha_update" value="">

        <span class="input-title">u0412u0432u0435u0434u0438u0442u0435 u043au043eu0434 u0441 u043au0430u0440u0442u0438u043du043au0438:</span>
        <input type="text" name="captcha" value="" autocomplete="off">
        <br>
        <div class="js_captcha_update captcha_update"><a href="javascript:void(0)" class="button-refresh">&nbsp;</a></div></div><div class="errors error_captcha" style="display:none"></div>"}
  • 07 мая 2015 г. , редакция: 07 мая 2015 г.
  • Поменял метод вывода модального окна.
    Вместо jquery.tools.min.js включающего в себя и библиотеку сделал вывод использующий jquery.prettyPopin.js , расположил между head и туда же перенёс инициализацию библиотеки включенную в diafan

    Получилось:
    Код

    <head>
    <!-- шаблонный тег show_head выводит часть HTML-шапки сайта. Описан в файле themes/functions/show_head.php. -->
    <insert name="show_head">

    <script type="text/javascript" src="//yandex.st/jquery/2.0.3/jquery.min.js" charset="UTF-8"><</script>
    <script src="/js/jquery.prettyPopin.js" type="text/javascript" charset="utf-8"></script>

    <script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
    $("a[rel^='prettyPopin']:eq(0)").prettyPopin({width: 550,followScroll:false});
    $("a[rel^='prettyPopin']:eq(1)").prettyPopin({width:300});
    $("a[rel^='prettyPopin']:eq(2)").prettyPopin({
    callback : function(){
    alert('This popin has a callback');
    }
    });
    });
    </script>
    </head>


    Всё работает, но присутствует такой глюк - При каждой активации модального окна панелька администратора над шапкой дублируется
    То есть нажал пять раз на ссылку, открывающую модальное окно, получил пять панелей над шапкой.

    Так же, если модальное окно открывалось, при добавлении комментария - комментарий добавляется, но тут же возникает надпись "ваше сообщение уже есть в базе", то есть функция отправки тоже дублируется.

    Больше в коде никаких сторонних скриптов нет, вывод стандартный.

    В консоли ошибок нет, единственное предупреждение:
    Код
    Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.


    Мозг кипит...
  • 07 мая 2015 г. , редакция: 07 мая 2015 г.
  • Вроде всё работает, ошибок и предупреждений в консоли нет, но насколько корректно то что получилось?
    Инициализировал вывод модуля админа перед jquery.prettyPopin.js между <head> перенеся его из show_js.php прямо в шаблон themes/site.php
    Итог:
    Код

    <?php
    /**
    * Основной шаблон сайта
    *
    * @package DIAFAN.CMS
    * @author diafan.ru
    * @version 5.4
    * @license http://www.diafan.ru/license.html
    * @copyright Copyright (c) 2003-2015 OOO «Диафан» (http://www.diafan.ru/)
    */

    if(! defined("DIAFAN"))
    {
    include dirname(dirname(__FILE__)).'/includes/404.php';
    }
    ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <head>
    <!-- шаблонный тег show_head выводит часть HTML-шапки сайта. Описан в файле themes/functions/show_head.php. -->
    <insert name="show_head">

    <link rel="stylesheet" href="/css/prettyPopin.css" type="text/css" media="screen" charset="utf-8" />
    <script type="text/javascript" src="//yandex.st/jquery/2.0.3/jquery.min.js" charset="UTF-8"><</script>

    <?php
    if ($this->diafan->_users->useradmin)
    {
    echo '<script type="text/javascript" src="//yandex.st/jquery/cookie/1.0/jquery.cookie.min.js" charset="UTF-8"></script>
    <script type="text/javascript">
    var useradmin_path = "'.BASE_PATH.ADMIN_FOLDER.'/";
    var base_path = "'.BASE_PATH.'";
    </script>
    <script type="text/javascript" asyncsrc="'.BASE_PATH.File::compress(Custom::path('modules/useradmin/js/useradmin.js'), 'js').'" charset="UTF-8"></script>';
    }
    ?>

    <script src="/js/jquery.prettyPopin.js" type="text/javascript" charset="utf-8"></script>

    <script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
    $("a[rel^='prettyPopin']:eq(0)").prettyPopin({width: 550,followScroll:false});
    $("a[rel^='prettyPopin']:eq(1)").prettyPopin({width:300});
    $("a[rel^='prettyPopin']:eq(2)").prettyPopin({
    callback : function(){
    alert('This popin has a callback');
    }
    });
    });
    </script>
    </head>
    <body>
    ......
    </body>
    </html>


    Это с технической точки зрения как? Мнение знатоков?

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум