Forums / National / Russian / Тех. поддержка / Запросы документации

<<<1...5...10...15161718192021>>>

Принимаем вопросы от населения

Kabak
#256 2014-10-25 18:37

Как прикрепить событие к тэгу {имя_ тэга_ в_ TPL} и синтаксис вызова функции по этому событию ?

 

{имя_ тэга_ в_ TPL} =

<input class="form-control" name="rusername" value="" size="24" maxlength="100" type="text">

Как мне прикрепить событие onclick к input по имени name="rusername" и вызов функции obrabotka() на JS по этому событию ?

Как это сделать на простом HTML я знаю, а как это прикрепить к тэгу {имя_ тэга_ в_ TPL}  в TPL заполненному HTML разметкой в Cotonti ?

можно пример кода на JS ?


Dit bericht is bewerkt door Kabak (2014-10-25 18:59, 9 jaren ago)
Roffun
#257 2014-10-25 20:21

Используйте jquery:

$("textarea[name=rusername]").attr({"onclick":"obrabotka()", "title":"Тайтл"})

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Kabak
#258 2014-10-25 20:23

1) это делается в любом .js файле прикрепляемому к Cotonti ?

2) Глобальные переменные ( и функции) объявленные в одном js видны в другом ?

3) функцию obrabotka() нужно объявлять в том же js где пишется ваш пример на jquery или не имеет значения ?

Alex300
#259 2014-10-25 21:02

1) Да, но суть не в самом Cotonti, а в наличии элемента на странице, на который подвешивается обработчик события.

2) Да. На то они и глобальные.

3) Не столь важно. Главное чтобы они были в одной области видимости и функция была объявлена до первого ее использования.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#260 2014-10-25 21:26
$("textarea[name=rusername]").attr({"onclick":"obrabotka()", "title":"Тайтл"})

не вызывает у меня вызова obrabotka() при нажатии мышкой в input с именем rusername, равно как и onkeypress, например.

В отладчике просто ничего не происходит. :(

создал эту строку в js.js

PRoHtml , у вас на сайте каким образом прикреплено событие onblur с обработчиком к input на форме регистрации  ?   все js  у вас ужаты нет возможности подсмотреть :(

Roffun
#261 2014-10-25 21:54
#40126 Kabak:
$("textarea[name=rusername]").attr({"onclick":"obrabotka()", "title":"Тайтл"})

не вызывает у меня вызова obrabotka() при нажатии мышкой в input с именем rusername, равно как и onkeypress, например.

Наверное потому что клик по input type text это событие фокуса а не клика. Обработчик сработает когда будет клик, если вешаете на onclick, а вы пытаетесь кликнуть там где происходит событие формы.  Для текстового поля формы больше .focus подойдет, или другой из возможных:

 

Список функций

Базовые

.on() Универсальный метод для установки обработчиков событий на выбранные элементы страницы.
.off() Удаляет обработчики, установленные с помощь .on().
.bind() Устанавливает обработчик события на выбранные элементы страницы. Обработчик не сработает на элементах, появившихся после его установки.
.live() Устанавливает обработчик события на выбранные элементы страницы. Обработчик сработает и на элементах, появившихся после его установки.
.delegate() Устанавливает обработчик события на выбранные элементы страницы. Элементы выбираются с помощью уточняющего селектора. Обработчик будет действовать и на элементах, появившихся после его установки.
.one() Устанавливает обработчик события на выбранные элементы страницы, который сработает только по одному разу, на каждом из элементов.
.unbind() Удаляет обработчик событий у выбранных элементов.
.die() Удаляет обработчик событий, который был установлен с помощью live().
.undelegate() Удаляет обработчик событий, который был установлен с помощью delegate().
.trigger() Выполняет указанное событие и запускает его обработчик.
.triggerHandler() Запускает обработчик указанного события, без его выполнения.
jQuery.proxy() По заданной функции, создает другую, внутри которой переменная this будет равна заданному значению.
event Объект, содержащий данные о текущем событии. Передается всем обработчикам событий.

События мыши

.click() Устанавливает обработчик "клика" мышью по элементу, либо, запускает это событие.
.dblclick() Устанавливает обработчик двойного "клика" мышью по элементу, либо, запускает это событие.
.hover() Устанавливает обработчик двух событий: появления/исчезновения курсора над элементом.
.mousedown() Устанавливает обработчик нажатия кнопки мыши, либо, запускает это событие.
.mouseup() Устанавливает обработчик поднятия кнопки мыши, либо, запускает это событие.
.mouseenter() Устанавливает обработчик появления курсора в области элемента, либо, запускает это событие. Появление этого события, отработано лучше, чем стандартного mouseover.
.mouseleave() Устанавливает обработчик выхода курсора из области элемента, либо, запускает это событие. Появление этого события, отработано лучше, чем стандартного mouseout.
.mousemove() Устанавливает обработчик движения курсора в области элемента, либо, запускает это событие.
.mouseout() Устанавливает обработчик выхода курсора из области элемента, либо, запускает это событие.
.mouseover() Устанавливает обработчик появления курсора в области элемента, либо, запускает это событие.
.toggle() Поочередно выполняет одну из двух или более заданных функций, в ответ на "клик" по элементу.

События клавиатуры

.keydown() Устанавливает обработчик перехода клавиши клавиатуры в нажатое состояние, либо, запускает это событие.
.keyup() Устанавливает обработчик возвращение клавиши клавиатуры в ненажатое состояние, либо, запускает это событие.
.keypress() Устанавливает обработчик ввода символа с клавиатуры, либо, запускает это событие.

События формы

.focus() Устанавливает обработчик получения фокуса, либо, запускает это событие.
.blur() Устанавливает обработчик потери фокуса, либо, запускает это событие.
.focusin() Устанавливает обработчик получения фокуса самим элементом или одним из его дочерних.
.focusout() Устанавливает обработчик потери фокуса самим элементом или одним из его дочерних.
.select() Устанавливает обработчик выделения текста, либо, запускает это событие.
.submit() Устанавливает обработчик отправки формы, либо, запускает это событие.
.change() Устанавливает обработчик изменения элемента формы, либо, запускает это событие.

События загрузки страницы

.ready() Устанавливает обработчик готовности дерева DOM.
.load() Устанавливает обработчик завершения загрузки элемента.
.unload() Устанавливает обработчик ухода со страницы (при переходе по ссылке, закрытии браузера и.т.д.).

События браузера

.error() Устанавливает обработчик ошибки при загрузке элементов (например отсутствие необходимой картинки на сервере).
.resize() Устанавливает обработчик изменения размеров окна браузера, либо, запускает это событие.
.scroll() Устанавливает обработчик "прокрутки" элементов документа, либо, запускает это событие.

 

 

PRoHtml , у вас на сайте каким образом прикреплено событие onblur с обработчиком к input на форме регистрации  ?   все js  у вас ужаты нет возможности подсмотреть :(

Таким и прикреплен

$("input[name=rusername]").blur(function() {

Просто я поработал с pagespeed, удалось сделать 100 из 100 , поэтому и код сжат в том числе

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Kabak
#262 2014-10-25 22:15

Если у вас $("input[name=rusername]").blur(function(){ , то как же у меня заработает -

$("textarea[name=rusername]").attr({"onkeypress":"obrabotka()", "title":"Тайтл"})

function obrabotka(){

}

 

Roffun
#263 2014-10-26 10:06
#40128 Kabak:

Если у вас $("input[name=rusername]").blur(function(){ , то как же у меня заработает -

$("textarea[name=rusername]").attr({"onkeypress":"obrabotka()", "title":"Тайтл"})

function obrabotka(){

}

Это просто пример, у меня таким образом подключается редактор к экстраполю для краткой новости.  События можно вешать куда угодно. А в моем случае с проверкой при регистрации - это целый плагин а не пару строчек кода.  А все приведенные выше кусочки кода - для общего примера.  Blur - это потеря фокуса. 

замените onclick на onblur или на onfocus , и соответственно textarea на input:

$("textarea[name=rusername]").attr({"onclick":"obrabotka()", "title":"Тайтл"}) - был пример

$("input[name=rusername]").attr({"onblur":"obrabotka()", "title":"Тайтл"}) - то же самое но для инпут на событие онблур

$("input[name=rusername]").attr({"onfocus":"obrabotka()", "title":"Тайтл"}) - то же самое но для инпут на событие онфокус

и тд.

 

 

Добавлено 10 минуты спустя:

----------------

Если вы указываете событие в самом скрипте, то в форме его указывать не нужно.

Главное чтобы скрипт был в поле видимости формы. Тогда инпут не троаете вообще, он по умолчанию имеет имя, этого достаточно чтобы обратиться.

А уже в скрипте вешаете события, условные операторы и тд

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts

Dit bericht is bewerkt door PRoHtml (2014-10-26 10:17, 9 jaren ago)
Kabak
#264 2014-10-26 20:10

Подскажите, как в Cotonti подцепить событие, например : onblur к input с именем rusername и вызвать функцию obrabotka() на это событие c использованием jQuery ?

Что-то у меня не получается...
 

Roffun
#265 2014-10-27 11:48

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
      #myid{background:red}
</style>

<input type="text" name="rusername" />
<script type="text/javascript">
      $(document).ready(function(){
      $("input[name=rusername]").blur(function() {
           obrabotka();
     });
 function obrabotka(){
     $("input[name=rusername]").attr("id", "myid");
  }
});
</script>

При событии .blur поле input станет красным.

.blur сработает когда кликните на поле (это будет .focus) а потом кликните в любом месте

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Kabak
#266 2014-10-27 13:33

Спасибо. пошёл учить jQuery...

Добавлено 3 недели спустя:

Добрый день.

 

Подскажите , как в JS прочитать ответ после вызова callback функции Cotonti, например : в TPL указываю для примера :

 {PHP|user_activity('userinfo',1,true,true,true,true)}

Как прочитать ответ на вышеуказанную функцию в JS коде при таком вызове ?


Dit bericht is bewerkt door Kabak (2014-11-17 12:41, 9 jaren ago)
Dayver
#267 2014-11-17 13:06

Селектором того в что этот ваш тег с ответом вставлен. Например если у вас так

<div class="info_from_callback">{PHP|user_activity('userinfo',1,true,true,true,true)}</div>

тогда в JS пишите так:

var otvet_iz_calbeka = $('.info_from_callback').html();

А если у вас типа

<div class="info_from_callback" rel="{PHP|user_activity('userinfo',1,true,true,true,true)}">bla bla</div>

тогда в JS 

var otvet_iz_calbeka = $('.info_from_callback').attr('rel');

Тобишь исключительно знаниями по jQuery решается, и особености кота и его работы с колбеками тут не причем.

Pavlo Tkachenko aka Dayver
Kabak
#268 2015-03-19 07:01

Как добавить блок к шобланизатору $t чтобы его обработал движок и вывел текст ?

Не создавать NEW а добавить блок тэгов вместе с моим шаблоном к уже существующему объекту $t ?

Dr2005alex
#269 2015-03-19 07:08
#40715 Kabak:

Как добавить блок к шобланизатору $t чтобы его обработал движок и вывел текст ?

Не создавать NEW а добавить блок тэгов вместе с моим шаблоном к уже существующему объекту $t ?

$t->assign(array(

"MY_TEG1" => 'Hello',
"MY_TEG2" => 'Hello qorld'

));

$t->parse('MAIN.MY_BLOCK');

где MY_BLOCK - это блок в шаблоне находящийся внутри блока MAIN.

<!-- BEGIN:MAIN -->
   <!-- BEGIN:MY_BLOCK -->
        {MY_TEG1} {MY_TEG2}
   <!-- END:MY_BLOCK-->
<!-- END:MAIN -->

 

WebKaa.ru - Cotonti Relax
Dayver
#270 2015-03-19 13:46

Я подумал что вопрос был о такой реализации

//Реализуем возможность использование своего шаблона из своего плуга или т.п.
$my_t = new XTemplate(cot_tplfile('myplug_or_module', 'module', true));
$my_t->assign(array(
       "MY_TEG1" => 'Hello',
       "MY_TEG2" => 'Hello qorld'
));
$my_t->parse('MAIN');

Направляем отпарсенный результат в стандартный шаблон какого нибудь модуля или плагина
$t->assign("MY_TEG_BLOCK", $my_t->text('MAIN'));

А вообще вот мануал по этой теме http://www.cotonti.com/docs/ext/extensions/xtemplate_programming 

Pavlo Tkachenko aka Dayver

<<<1...5...10...15161718192021>>>