![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
Есть ссылка:
Нужно что бы при клике по этой ссылке отправлялся пост-запрос на php файл для учета кликов и передавал значение href, data-text, data-num и анкор ссылки. Как такое осуществить? Желательно без использования библиотек. |
|||
|
||||
| Sanchezzz |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 3 Всего: 60 |
Только на Jquery (время деньги)
онлайн тест http://jsfiddle.net/N9etW/ ( навряд ли будет работать и за политике безопасности)
Это сообщение отредактировал(а) Sanchezzz - 17.11.2012, 16:15 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
||||
|
|||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
@Another
А для чего это делать методом POST? @Sanchezzz В общем случае было бы лучше создать единый обработчик, делегировав обработку события общему для всех ссылок контейнеру (например, body). Особенно если ссылок с атрибутом data-text может быть много. Да, и еще одно. Делать return false из jQuery-обработчика события не всегда хорошо, поскольку это отменяет дальнейшее распространение события вверх по дереву DOM (.stopPropagation()), что исключает возможность другим делегирующим обработчикам обработать событие. Если намеренно не планируется запрет дальнейшего всплытия события, лучше просто отменить действие по умолчанию методом .preventDefault() |
|||
|
||||
| Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
А, собственно, все-равно. Можно и GET |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 3 Всего: 60 |
Amphiluke, знаю что лучше использовать event.stopPropagation() я честенько про него забываю).
а событие повесил на все ссылки с атрибутом иза того что больше некчему было прицепится можно конечно было с делать с проверкой значения
Это сообщение отредактировал(а) Sanchezzz - 17.11.2012, 21:15 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
Всё не то
Упростим задачу.
При клике - отправить GET или POST запрос на файл click.php?click=text |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
В данном случае .preventDefault(), а не stopPropagation() Another, в простейшем случае с GET-вариантом запроса и с отсутствием необходимости дожидаться ответа от сервера, можно, к примеру, сформировать динамический элемент img и указать все эти параметры в его атрибуте src, как делается в распространенных эвент-трекерах.
|
|||
|
||||
| Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
Почему-то вышепривеенный пример не сработал. к click.php вообще не было обращения...
Добавлено через 7 минут и 23 секунды Придумал одно из простейших решений данной проблемы:
а этот самый clicks.php потом обратно редиректит человека на предыдущую страницу. это как вариант. Но хотелось бы еще увидеть что-то покрасивее. |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Наверное, что-то сделали не так, у меня все работало. В примере адрес скрипта click.php считался не от корня сайта (т.е. без начального слэша. Возможно, поэтому). Сетевую активность удобно отслеживать через отладчик в браузере (Firebug, Developer tools и т.д.), там можно увидеть, что не так. Можно еще попробовать добавить к GET-запросу случайный параметр или timestamp — для избежания кэширования.
Ужас какой, простите. Это сообщение отредактировал(а) Amphiluke - 18.11.2012, 14:40 |
||||
|
|||||
| Another |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
Проверял и так и эдак. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Sanchezzz, так короче
Это сообщение отредактировал(а) Aliance - 19.11.2012, 10:12 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |