Prestashop 1.7-фрагмент кода jQuery внутри файлов шаблонов (jQuery не определен)

Prestashop 1.7-фрагмент кода jQuery внутри файлов шаблонов (jQuery не определен)

28.03.2019 06:28:58 Просмотров 16 Источник

Как можно написать фрагмент кода jQuery внутри тематических tplя использовал код jQuery, но в theme\classicChild\modules\ps_customersignin\ps_customersignin.tplя получаю chrome consoleсообщение:

(jQuery is not defined)

Редактировать: также используйте Displaybeforebodyclosingtag крюк перед кодом jquery, но не работает.

{literal}
<script type="text/javascript">

        jQuery(document).ready(function($){
            alert('x');
        });


</script>
{/literal}
У вопроса есть решение - Посмотреть?

Ответы - Prestashop 1.7-фрагмент кода jQuery внутри файлов шаблонов (jQuery не определен) / Prestashop 1.7- snippet jQuery code inside templates files (jQuery is not defined)

Rolige

28.03.2019 06:59:06

Это типичная ошибка, когда jQuery, на тот момент, еще не был загружен, просто добавьте этот код $this->context->controller->addJquery();в метод renderWidgetмодуля /modules/ps_customersignin/ps_customersignin.phpкогда hookDisplayHeader`.

Пример конечного результата:

public function renderWidget($hookName, array $configuration)
{
    if ($hookName == 'displayHeader' && method_exists($this->context->controller, 'addJquery')) {
        return $this->context->controller->addJquery();
    }

    $this->smarty->assign($this->getWidgetVariables($hookName, $configuration));

    return $this->fetch($this->templateFile);
}

После этого вам нужно будет прикрепить модуль к крюку displayHeader в позиции модуля.

https://stackoverflow.com/questions/55401401/prestashop-1-7-snippet-jquery-code-inside-templates-files-jquery-is-not-define/55402025#comment97526592_55402025
Эта функция не действует в PrestaShop 1.7 theme. jQuery2 регистрируется ядром по каждой теме. классы / контроллер / FrontController.в PHP public function addJquery($version = null, $folder = null, $minifier = true) { /* This is deprecated in PrestaShop 1.7 and has no effect in PrestaShop 1.7 theme. jQuery2 is register by the core on every theme. Have a look at the /themes/_core folder. */ }
https://stackoverflow.com/questions/55401401/prestashop-1-7-snippet-jquery-code-inside-templates-files-jquery-is-not-define/55402025#comment97535716_55402025
Я добавил изменение в свой ответ, пожалуйста, попробуйте сейчас с этими изменениями и дайте мне знать. Не забудьте очистить кэш.
https://stackoverflow.com/questions/55401401/prestashop-1-7-snippet-jquery-code-inside-templates-files-jquery-is-not-define/55402025#comment97543841_55402025
Я всегда очищаю кэш и включаю режим отладки. Я попробую это сделать. Важным событием является то, что вчера вечером фрагмент кода jquery сработал !!!. jquery is not defineвсе еще существует on chrome console, но jquery работает очень хорошо. Я не делаю никаких важных изменений!
https://stackoverflow.com/questions/55401401/prestashop-1-7-snippet-jquery-code-inside-templates-files-jquery-is-not-define/55402025#comment97544347_55402025
Я пробовал твой новый код, но он не действует. сообщение jquery is not define, все еще существует. Но, как я уже сказал в предыдущем комментарииjquery code workпо-настоящему ,даже если jquery is not define, он появляется на chrome console developer tools!!!
Alexander Grosul

28.03.2019 06:59:14

Это происходит из-за всех скриптов, включая core.js (который включает jquery) вызываются перед закрытием тела tad, и вы пытаетесь использовать его раньше. Поэтому я думаю, что невозможно добавить ваш скрипт таким образом и нужно переместить ваш код в класс контроллера модуля

https://stackoverflow.com/questions/55401401/prestashop-1-7-snippet-jquery-code-inside-templates-files-jquery-is-not-define/55402027#comment97526993_55402027
Спасибо, я верю, что это возможно. Просто я новичок в Prestashop и ищу правильный путь...
Закрыть X