
12.01.2021, 20:05
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
Изменить событие по клику
Добре товарищи!
Имеем чат и список юзеров соответственно, сейчас по клику на ник он выводит меню с дополнительными функциями, очень хочется научить его вставлять по клику ник юзера с запятой в окно ввода текста, а лучше по клику ЛКМ.
Вот фрагмент кода который как я понимаю формирует юзер лист:
kide.insert_sesion = function(user) {
var div = document.createElement('div');
div.setAttribute('style', 'cursor:pointer');
div.setAttribute('class', user._class);
div.onclick = function() { kide.mostrar_usuario(user.id, user.name, user.rango, user.sesion, user.profile, user.img) };
div.innerHTML = user.name;
this.$('KIDE_usuarios').insertBefore(div, this.$('KIDE_usuarios').firstChild);
};
а вот код который умеет вставлять в в окно ввода текста ники (первоначально вставляет код смайликов):
<a href="javascript:kide.insertSmile(' Выводимый текст ')">
Отображаемый текст
</a>
На всякий случай ссылка на файл JS: https://noviy-kovcheg.ru/components/...ult/js/kide.js
|
|

12.01.2021, 20:28
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,136
|
|
Сообщение от Ubivectel
|
вставлять по клику ник юзера с запятой в окно ввода текста,
|
kide.insertSmile(user.name + ', ');
вместо
kide.mostrar_usuario(user.id, user.name, user.rango, user.sesion, user.profile, user.img)
|
|

12.01.2021, 20:46
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,136
|
|
Ubivectel,
kide.insert_sesion = function(user) {
var div = document.createElement('div');
div.setAttribute('style', 'cursor:pointer');
div.setAttribute('class', user._class);
div.onclick = function() { kide.mostrar_usuario(user.id, user.name, user.rango, user.sesion, user.profile, user.img) };
div.innerHTML = user.name;
div.addEventListener('contextmenu', function(event) {
event.preventDefault();
kide.insertSmile(user.name + ', ');
}, true);
this.$('KIDE_usuarios').insertBefore(div, this.$('KIDE_usuarios').firstChild);
};
Последний раз редактировалось рони, 12.01.2021 в 20:48.
|
|

12.01.2021, 20:55
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
спасибо рони, как всегда все работает, и правда профессор! 
|
|

12.01.2021, 22:37
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
Все, окончательно все сделал, только поменял местами события, левый клик вставляет ник, а правый вызывает меню. Хотел проделать тоже самое с никами в окне сообщений, но похоже, что там клик обрабатывает не JS а PHP, и по образу и подобию сделать не прокатило 
|
|

12.01.2021, 23:33
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
На случай если кто-то php понимает не хуже JS:
echo '<span style="cursor: pointer" title="'.$tiempo.'" onclick="kide.mensaje(\''.addslashes($r->name).'\','.$r->userid.','.$r->id.',\''.$r->url.'\',\''.$tiempo.'\',\''.$r->sesion.'\','.$r->rango.',\''.$r->img.'\')" class="'.KideHelper::getRango($r->rango, 'KIDE_').'">';
|
|

12.01.2021, 23:37
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Ubivectel
|
там клик обрабатывает не JS а PHP
|
PHP этого делать не может, да и не нужно ему это.
|
|

12.01.2021, 23:43
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
Спасибо, понял, полез искать где оно в скрипте)
|
|

13.01.2021, 00:04
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,136
|
|
Сообщение от Ubivectel
|
На случай если кто-то php понимает не хуже JS:
|
да это именно эта строка, формат могу путать но будет что-то типа
echo '<span style="cursor: pointer" title="'.$tiempo.'" onclick="kide.insertSmile(\''.addslashes($r->name).'\')">';
|
|

13.01.2021, 00:23
|
Профессор
|
|
Регистрация: 01.12.2020
Сообщений: 171
|
|
Да, все работает, еще бы запятую с пробелом добавить, а первоначальный код вызывать по правому клику)
|
|
|
|