Как при клике на блок достать его данные и занести в другой блок.
Здравствуйте, у меня на сайте есть блок с комментариями и поле для ввода и отправки этих комментариев. Мне нужно, чтобы при нажатии на имени (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 |
Если правильно понял:
$(document).on('click','.name',function(e){
$("#message").val($(this).text());
});
|
Я зря столько рассписывал, нужно было просто спросить:
как при клике на блок получить его данные/содержимое, например блок: <div clas='text'>Текст, который я хочу занести в переменную name при клике на него</div>. А потом отобразить переменную name (в которой будет находиться уже текст блока с классом text) в input с class='message' |
Vladislav,
вы ответ получили? )
$(document).on('click','.name',function(e){
var name = $(this).text();
$("#message").val(name);
});
|
Ой... что-то затупил, да я написал как вы все получилось, спасибо) Но у меня еще один вопрос есть, как сделать так, чтобы не только вот это имя добавлялось в input, а еще этот инпут становился как focus, то есть чтобы не нужно было активировать его, а он сам активировался, после того как добавиться переменная name в него.
И еще один вопрос, зачем вы пишите "..'.name',function(e){...", буковку "e", что она дает? |
а?
|
Я конечно подскажу, но вам не мешало бы поиметь базовые знания по JavaScript и jQuery, что бы чему то научится...
Про фокус. Добавьте: $("#message").focus(); По поводу "е" При срабатывании события, в функцию-обработчик передается объект, который описывает событие, и писать её у меня уже вошло в привычку. Изучайте матчасть! |
Спасибо, что помогаете! Обязательно буду учить матчасть!
То, что вы скинули, работает, имя вставляется, focus срабатывает, но курсор мыши появляется перед именем, а не после, как должно быть. Вот js код:
$(document).on('click','.chat_name',function(e){
var name = $(this).text()+", ";
$("#message").val(name).focus();
});
Вот картинки, как все это выглядит: |
Ну дак поменяйте местами команды val и focus, емаё
|
ппц я нубас) спасибо получилось!
|
| Часовой пояс GMT +3, время: 12:28. |