Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2021, 20:05
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Изменить событие по клику
Добре товарищи!

Имеем чат и список юзеров соответственно, сейчас по клику на ник он выводит меню с дополнительными функциями, очень хочется научить его вставлять по клику ник юзера с запятой в окно ввода текста, а лучше по клику ЛКМ.

Вот фрагмент кода который как я понимаю формирует юзер лист:

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
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2021, 20:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Ubivectel
вставлять по клику ник юзера с запятой в окно ввода текста,
kide.insertSmile(user.name  + ', ');

вместо
kide.mostrar_usuario(user.id, user.name, user.rango, user.sesion, user.profile, user.img)
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2021, 20:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

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.
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2021, 20:55
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

спасибо рони, как всегда все работает, и правда профессор!
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2021, 22:37
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Все, окончательно все сделал, только поменял местами события, левый клик вставляет ник, а правый вызывает меню. Хотел проделать тоже самое с никами в окне сообщений, но похоже, что там клик обрабатывает не JS а PHP, и по образу и подобию сделать не прокатило
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2021, 23:33
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

На случай если кто-то 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_').'">';
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2021, 23:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ubivectel
там клик обрабатывает не JS а PHP
PHP этого делать не может, да и не нужно ему это.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2021, 23:43
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Спасибо, понял, полез искать где оно в скрипте)
Ответить с цитированием
  #9 (permalink)  
Старый 13.01.2021, 00:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

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

Да, все работает, еще бы запятую с пробелом добавить, а первоначальный код вызывать по правому клику)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить на input по двойному клику vsco89 Элементы интерфейса 1 14.12.2020 03:59
Не работает событие по клику maxg5 jQuery 11 02.07.2018 22:36
Изменить размер шрифта абзаца по клику на кнопку klesha jQuery 5 08.10.2015 16:08
Изменить событие skillful jQuery 5 05.01.2015 19:24
jQuery: событие по второму подрят клику timyrio Общие вопросы Javascript 23 02.05.2011 01:11