Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2013, 17:49
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

Как при клике на блок достать его данные и занести в другой блок.
Здравствуйте, у меня на сайте есть блок с комментариями и поле для ввода и отправки этих комментариев. Мне нужно, чтобы при нажатии на имени (class='name') в input (id='message') заносилось имя этого пользователя. Вот html:

Блок для написания и отправки комментариев:
<form>
<input type='text' id='message'>
<input type='type='submit' id='button'>
</form>

Блок с комментариями:
<div id='all_comments'>
    <div class='comment'><span class='name'>Владислав:</span> Всем       привет!</div>
    <div class='comment'><span class='name'>Виктор:</span> Владислав, привет! Как у тебя дела?</div>
    <div class='comment'><span class='name'>Оля:</span> И вам того же.</div>
</div>


То есть если я сейчас нажму на класс name, а именно на имя Оля, в input id='message' должно занестись ее имя, вот так вот:


--Блок отправки сообщения--
Оля, ...
------------------------------

Я в принципе могу это реализовать, только я не знаю как достать именно данные из блока с классом name?

Вот как я могу реализовать:

<script>
$(function(){
   $('.chat_block').on('click', '.name', function () {
      var span= $(this).closest('span');
      var name= span.find(".chat_name").val();      
      $("#message").val("TEST-name");                                                                                                                         
    });
});
</script>


Но этот js код заносит не значение блока name, а строчку: TEST-name
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2013, 17:57
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Если правильно понял:
$(document).on('click','.name',function(e){
$("#message").val($(this).text());
});
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2013, 18:08
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

Я зря столько рассписывал, нужно было просто спросить:

как при клике на блок получить его данные/содержимое, например блок:

<div clas='text'>Текст, который я хочу занести в переменную name при клике на него</div>.

А потом отобразить переменную name (в которой будет находиться уже текст блока с классом text) в input с class='message'
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2013, 18:14
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Vladislav,
вы ответ получили? )

$(document).on('click','.name',function(e){
    var name = $(this).text();
    $("#message").val(name);
});

Последний раз редактировалось Keeper, 19.03.2013 в 18:17.
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2013, 18:25
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

Ой... что-то затупил, да я написал как вы все получилось, спасибо) Но у меня еще один вопрос есть, как сделать так, чтобы не только вот это имя добавлялось в input, а еще этот инпут становился как focus, то есть чтобы не нужно было активировать его, а он сам активировался, после того как добавиться переменная name в него.

И еще один вопрос, зачем вы пишите "..'.name',function(e){...", буковку "e", что она дает?
Ответить с цитированием
  #6 (permalink)  
Старый 19.03.2013, 21:16
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

а?
Ответить с цитированием
  #7 (permalink)  
Старый 20.03.2013, 10:23
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Я конечно подскажу, но вам не мешало бы поиметь базовые знания по JavaScript и jQuery, что бы чему то научится...
Про фокус. Добавьте:

$("#message").focus();

По поводу "е"

При срабатывании события, в функцию-обработчик передается объект, который описывает событие, и писать её у меня уже вошло в привычку.

Изучайте матчасть!
Ответить с цитированием
  #8 (permalink)  
Старый 20.03.2013, 12:17
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

Спасибо, что помогаете! Обязательно буду учить матчасть!

То, что вы скинули, работает, имя вставляется, focus срабатывает, но курсор мыши появляется перед именем, а не после, как должно быть.

Вот js код:

$(document).on('click','.chat_name',function(e){
    var name = $(this).text()+", ";
    $("#message").val(name).focus();

});


Вот картинки, как все это выглядит:



Ответить с цитированием
  #9 (permalink)  
Старый 20.03.2013, 12:58
Аспирант
Отправить личное сообщение для Keeper Посмотреть профиль Найти все сообщения от Keeper
 
Регистрация: 28.04.2011
Сообщений: 73

Ну дак поменяйте местами команды val и focus, емаё
Ответить с цитированием
  #10 (permalink)  
Старый 20.03.2013, 13:51
Кандидат Javascript-наук
Отправить личное сообщение для Vladislav Посмотреть профиль Найти все сообщения от Vladislav
 
Регистрация: 13.02.2013
Сообщений: 105

ппц я нубас) спасибо получилось!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
Как отправить данные в .php файл на другой сервер ? lamer AJAX и COMET 2 04.04.2012 23:55
закрыти diva при клике вне его Hugo_O Элементы интерфейса 14 21.05.2010 14:39
Закрыть элемент при клике вне его masterm Общие вопросы Javascript 3 31.07.2009 11:27