- Предыдущая
- 1
- 2
- Показаны 16-29 из 29
Я даже не пытался создавать конструкций parent #child.
Всё равно яваскрипт не увидит родителей #button, если он не видит сам #button.
Просто смотрел в панели разработчика, кто родитель выведенного на экран элемента.
И раньше-то на выведенные аяксом элементы события плохо вешались, а теперь и вовсе не вешаются.
Если разработчики подскажут почему так — буду очень признателен.
Можете перевести на наш суть проблемы?) Я так ничего и не понял, что не получается и при чём тут другой шаблон.Если разработчики подскажут почему так — буду очень признателен.
Вроде бы в модальном окне можно использовать
<script> $('#button').on('click',function(){ /* что-то */ }); </script>
Пример проявления проблемы:Можете перевести на наш суть проблемы?
Требуется отправка комментариев по Ctrl+Enter.
Шаблон default: добавляем в низ файла \templates\default\controllers\comments\list.tpl.php
<script type="text/javascript"> $('textarea').on('keydown', function(event){ if (event.keyCode === 10 || event.keyCode == 13 && event.ctrlKey) { icms.comments.submit(); } }); </script>
Шаблон модерн. добавляем тот же код в тот же файл. Элемент textarea на странице присутствует, но событие $('textarea').on('keydown', function(event){ не срабатывает
Пришлось делать так:
<script> document.addEventListener("DOMContentLoaded", () => { $('#comments_add_form').on('keydown', function(event){ if (event.keyCode === 10 || event.keyCode == 13 && event.ctrlKey) { icms.comments.submit();}}); </script>
И причина тому, то что ваш код заявлен раньше, чем объявлена переменная $? Или другая ошибка в консоли?$('textarea').on('keydown', function(event){ не срабатывает
Нет, конечно же я делал ожидание загрузки страницы на чистом яваскрипте.И причина тому, то что ваш код заявлен раньше, чем объявлена переменная $?
document.addEventListener("DOMContentLoaded", () => {
А нету никаких ошибок в консоли. Как будто textarea отсутствует на странице.Или другая ошибка в консоли?
Можно написать
document.addEventListener("DOMContentLoaded", () => { $('textarea').on('click', function(){ console.log(123456); }); });
Зачем? Надо вот так:Пришлось делать так:
<script> $(function(){ $('textarea').on('click', function(){ console.log(123456); }); }); </script>
Затем, что я этот код просто виджетом HTML на страницу списка комментариев вывел.Зачем?
За информацию про ob_start спасибо! Сечас посмотрю, что это вообще такое…
Так и знал, что вы подарите нам виджет "PHP код" в коробке уже в следующем релизе!Надо вот так
Что бы понять нужно очень глубокое погружение в облость php И честно сказать я так и не понял зачем он в шаблоне, если его суть именно в выводе данных в шаблон. Как я понял. И это конечно не сомнение целесообразности использования, а просто мой недостаток знания).Сечас посмотрю, что это вообще такое...
Судя по куску кода, который привёл Fuze, и мануалам из интернетов, ob_ это output bufer.
И с содержимым этого буфера можно работать с помощью javascript перед выводом этого содержимого в браузер.
Буферизацией также можно добавлять любые HTML блоки на любые позиции шаблона. Т.е. то, что идёт после ob_start() не печатается тут же в браузер, а ob_get_clean() получает всё, что было "напечатано" в коде после ob_start().
Таким образом можно, например, в шаблоне контроллера какой-то блок HTML кода вывести на позицию виджета.
<div>Произвольный HTML</div>
- Предыдущая
- 1
- 2
- Показаны 16-29 из 29