js и modern

#1 2 апреля 2021 в 16:31
Привет. Не работает в модерне js из модального окна. Например. Шаблон редактирования записи тк. Пишу кнопку в меню действий.
  1. $this->addToolButton(array(
  2. 'class' => 'test-button',
  3. 'title' => 'Test',
  4. 'href' => "#test",
  5. 'class'="ajax-modal"
  6. 'icon' => 'wrench'
  7. ));
  1. <div style="display:none" id="test"><button id="button">text</button></div>
  1. $('#button').on('click',function(){
  2. // тут что то
  3. });
И не работает. Причём в дефолтовом шаблоне работает. А так же тут, если не в модальном окне.
#2 2 апреля 2021 в 16:49
Lora,
Ошибки из консоли в студию!
#3 2 апреля 2021 в 17:14
Нет ошибок
#4 2 апреля 2021 в 17:14
С ошибками я бы и сам разобрался)
#5 2 апреля 2021 в 17:19


Нет ошибок

Lora
Тогда вешайте событие на родителей кнопки.
Вплоть до document.
Расскажете, на чем сработает.
#6 2 апреля 2021 в 17:44
Позже попробую. Хотя… У родителей классы, у кнопки id…
#7 2 апреля 2021 в 17:51
Тут трохи ошибок завалялось:

$this->addToolButton(array(
'class' => 'test-button',
'title' => 'Test',
'href' => "#test",
'class'="ajax-modal"
'icon' => 'wrench'
));

Lora
А это, похоже, в коде раньше подключения библитеки:

$('#button').on('click',function(){
// тут что то
});

Lora
Пункт в меню:
  1.  
  2. $this->addToolButton(array(
  3. 'class' => 'test-button',
  4. 'title' => 'Test',
  5. 'href' => '#test',
  6. 'class' => 'ajax-modal',
  7. 'icon' => 'wrench'
  8. ));
  9.  
А скрипт вниз станицы:
  1.  
  2. <?php ob_start(); ?>
  3. <script>
  4. $('#button').on('click',function(){
  5. /* что-то */
  6. });
  7. </script>
  8. <?php $this->addBottom(ob_get_clean()); ?>
  9.  
#8 2 апреля 2021 в 18:59

А это, похоже, в коде раньше подключения библитеки:

Олег Васильевич я
Тогда бы консоль ругалась на доллары.
#9 2 апреля 2021 в 19:24
Как у вас работает скрипт? Если код внутри шаблона, то он работать не будет, нужно создать отдельный js файл с Вашим скриптом
  1. <?php $this->addMainTplJSName('ваш скрипт'); ?>
и обязательно после
  1. <?php $this->addMainTplJSName('vendors/bootstrap/bootstrap.min'); ?>
#10 2 апреля 2021 в 19:38
hard990, с чего это не будет? Будет. Я же писал, в дефолтовом работает. Без модала, работает. Что то в шаблоне где то мешает. Но пробовал и подключить…
#11 2 апреля 2021 в 19:40
Олег Васильевич я, пробовал и вверх и в них и сбоку поперёк laugh
#12 2 апреля 2021 в 22:07
Lora,
так я и не говорю, что на старом не работает. Тут особенность нового шаблона, что все скрипты выполняются после загрузки самого шаблона, если откроете исходный код страницы шаблона модерн, то увидите что скрипты начинаются после </footer>, а не в самом верху <head> как раньше
#13 2 апреля 2021 в 22:21
Дело в ob_start(). Разобрались С Васильечем. Скрипт должен быть внутри. Хотя и там не всё так гладко).
#14 2 апреля 2021 в 22:30
Lora,
Я сталкивался с подобной проблемой.
У меня был виджет отправки комментарев по Ctrl+Enter. На дефолте работал с 2017-го года, на модерне отказался работать.
Перевешивал вверх по родителям, пока не заработало.
#15 2 апреля 2021 в 22:36
Ris, такое бывает. Просто я как то не сталкивался с конструкцией типа
  1. .parent #child
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.