Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Действие по клику (https://javascript.ru/forum/misc/42385-dejjstvie-po-kliku.html)

mego4el 24.10.2013 09:35

Действие по клику
 
Здравствуйте. :victory:

Пожалуйста подскажите как сделать конкретное действие по клику:

по клику на ник автора -

<a class="author" href="{postrow.U_POST_AUTHOR}" onclick =""> <!--{postrow.POST_AUTHOR}-->
					<b class="postauthor"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}"<!-- ENDIF -->>{postrow.POST_AUTHOR}</b>
				</a>


нужно что бы этот ник добавлялся автоматически в textarea -

<td class="row2" valign="top" align="left" width="78%"><textarea name="message" rows="7" cols="76" tabindex="3"  style="width: 700px; height: 130px; min-width: 98%; max-width: 98%;"></textarea> </td>


как это сделать?
спасибо всем заранее! :write:

NodeNerd 24.10.2013 11:49

Думаю, лучше всего будет привязать JQuery onclick на a.author. В обработчике с помощью event.target получить конкретный объект и вытаскивать из него .text(). А дальше prepend этого текста в textarea (ник же перед сообщением должен быть?). Кстати, textarea лучше назначить id, чтобы меньше грузить браузер.

$('.author').onclick(function(e){
  var nickname = e.target.innerText;
  $('#textareaID').prepend(nickname);
});

OlgaMarius 29.10.2013 17:25

Пожалуйста, помогите

Скрипт перехватывает клик

window.onclick=function(e){
var t=e?e.target:window.event.srcElement;
if(t.tagName==='A')alert(t.href);
}


Теперь нужно отменить переход по ссылке и вместо этого, взять URL и использовать его для подгрузки данных без перехода.

$("div#result").load("t.href .content", function(){});


Но не получается. Пробую вставить эту строку вместо alert(t.href); вот так -

window.onclick=function(e){
var t=e?e.target:window.event.srcElement;
if(t.tagName==='A')
$("div#result").load("t.href .content", function(){});
}


====
Запретить переход получилось с помощью этого:

event.preventDefault();


Но так и не получается взять ссылку и подгрузить из нее данные... alert(t.href); выдает корректный урл, почему же не загружается?

ksa 30.10.2013 09:33

Цитата:

Сообщение от OlgaMarius
"t.href .content"

Это УРЛ такой? :blink:

OlgaMarius 31.10.2013 10:50

Ну, по нажатию на ссылку alert(t); выдает корректный результат. То есть если ссылка ведет на гугл.ком, то и УРЛвыводит в окошке на гугл.ком. Соответственно в переменной t находится ссылка? Но почему не получается эту ссылку использовать для подгрузки контента?

$("div#result").load('t #content', function(){});


$.get ('t', function (data){ $(data).find("#content1").appendTo("#content");


Странно. Вместо t должен же подставляться УРЛ... а он не подставляется. :(

ksa 31.10.2013 11:26

Цитата:

Сообщение от OlgaMarius
alert(t);
выдает корректный результат.

Это-то понятно... :D

Теперь посмотри, что выведет тебе

alert('t');

ruslan_mart 31.10.2013 11:49

В Вашем случае, t - это обычная строка. Учите основы ;)

$("div#result").load(t + ' #content', function(){});

$.get (t, function (data){ $(data).find("#content1").appendTo("#content");

OlgaMarius 31.10.2013 11:53

ааа, да) Но я уже как только не пробовала подставить эту t и в кавычках разных и без них, и href через точку и что угодно. Использовала load, get. Все бесполезно. Делаю так:

window.onclick=function(e){
event.preventDefault();
var t=e?e.target:window.event.srcElement;
if(t.tagName==='A')
alert(t);
$("#content").load('t #content');
};


1. функция начинается при клике
2. отменяем стандартное действие
3. записываем в переменную УРЛ
4. если клик был по ссылке
5. показать УРЛ этой ссылки для контроля (УРЛ правильный! Мне с него надо взять информацию).
6. берем информацию и... ничего не происходит... Вообще странно.

OlgaMarius 31.10.2013 11:56

Цитата:

Сообщение от ksa (Сообщение 278887)
Это-то понятно... :D
Теперь посмотри, что выведет тебе

Цитата:

Сообщение от Ruslan_xDD (Сообщение 278891)
В Вашем случае, t - это обычная строка. Учите основы ;)

Ну это да. но проблема где-то не там. Не то скопировала просто, это от отчаяния я в кавычки пробую :)

ruslan_mart 31.10.2013 12:02

$(document).on('click', 'a', function() {
   $("#content").load(this.href + ' #content');
   return false;
});

OlgaMarius 31.10.2013 12:12

О, боги! Наконец-то работает. :) Спасибо большое! А вы случайно не знаете, почему мой вариант не срабатывал? Ну или ладно, пусть это будет загадкой. Когда-нибудь догадаюсь)

ruslan_mart 31.10.2013 13:16

OlgaMarius, вот рабочий Ваш вариант:

window.onclick = function(e) {
   var t = e ? e.target : window.event.srcElement;
   if(t.tagName) {
      e.preventDefault();
      $("#content").load(t.href + ' #content');
   }
}


А не работал, потому что Вы не указали href к t.

ksa 31.10.2013 13:22

Цитата:

Сообщение от OlgaMarius
Ну или ладно, пусть это будет загадкой.

Ага, пусть будет... :D


Часовой пояс GMT +3, время: 02:02.