Это я

Пользователь:

Гость

Вход

Зарегистрироваться

Это я

Головная страница   Блог   Euclidea  


Сбросить фильтр по тегу likes


Лайки 4

2.07.2020 22:38:56

Сделал все для обсуждений и блога. Надо было только распространить на остальные контроллеры и шаблоны.
Перенес на сервер. Работает вроде бы.
Вообще, с лайками помучиться пришлось, поизучать js. Зато продвинулся в его изучении. Точнее, в js + jQuery. Получил хороший опыт. И понятно, что скорее всего не оптимально все реализовано. Но оно реализовано, реализовано самостоятельно, и оно работает. Я доволен. Получил гораздо больше опыта, чем при ковырянии в чужом коде imagepool. Хотя не будь его, все было бы сложнее. Некоторые вещи там подсмотрены. Типа передачи ссылки на нужный базовый адрес для скрипта в шаблоне по невидимому идентификатору.

likes  

Лайков: 0



Лайки 3

1.07.2020 20:01:16

Много времени потратил на то, чтобы заработало хоть что-то. Синтаксис тот еще у js, а со средствами отладки не шибко знаком. Пришлось по шагам, алертить промежуточные результаты.
И очень долго пытался вытащить атрибут "href" по "id" структуры типа:
<p id='id'><a href='нужный путь'><img scr='путь к картинке'></a></p>
с помощью скрипта вида:
$('#wt').on('click', 'a[href]', function(evt){evt.preventDefault(); alert ($(evt.target).attr('href'));
При нажатии на картинку определяется элемент "img", а не "a[href]", его атрибуты читаются, а "href" нет, он при этом undefined.
Убрал картинку, добавил текст. Все отлично работает. Добавил картинку к тексту, при нажатии на текст работает, на картинку нет.
Решение: ищем "href" ближайшего элемента типа "a".
$('#wt').on('click', 'a[href]', function(evt){evt.preventDefault(); alert ($(evt.target).closest('a').attr('href'));
Такое работает. Видимо, несмотря на поиск элемента типа "a", находится элемент, на который произведен клик - "img". Поэтому он не имеет атрибута "href". И как узнать заранее, что не "a", а "img" выберется? Может быть, я неправильно выбираю объект, но this здесь не работает тоже. Просто не знаю, что еще может быть. Возможно, данное решение не оптимальное, но оно работает. Здесь по крайней мере. Кстати, для текста оно тоже работает.
upd. вечер 01.07.2020. Заставил нормально работать лайки для темы на странице обсуждения темы. Для списка комментариев там же и для списка тем пока не реализовал. Там еще текущий номер сообщения или темы надо получить.

likes  

Лайков: 0



Лайки 2

1.07.2020 12:55:51

Сделал модель для хранения данных о лайках пользователя для обсуждений и комментариев. Сделал ограничение на +1/-1 лайк (дизлайк). Сделал разное отображение и поведение картинок лайк/дизлайк при их наличии, чтобы нельзя было повторно лайкать. Начал пытаться написать скрипт для обработки json-ответа.
И тут опять какие-то непонятки пошли. Делаю функцию $("#like_topic").on("click"... для перехвата клика по картинке. А она выполняется сразу при загрузке страницы, причем дважды. В процессе разбирательств упростил скрипт до предела:
$(document).ready(function() {
alert (6);
});
Он выполняется при загрузке страницы дважды!!!
Ссылка в шаблоне на внешний скрипт сделана одна. Я не понимаю, как работает этот... js! Жаль, но внутренний цензор не допускает выражения переполняющих эмоций.
Во всех браузерах так. Явно где-то видимо косяк есть, но вот где? Я же начинал с такого же скрипта, все работало нормально!
upd. Ссылка на скрипт внутри main-блока была, в то время как в базовом шаблоне место для внешних скриптов вне этого блока размещено. Переместил. Теперь один раз запускается.
Но функция .on("click" все равно запускается при загрузке, а не по клику! Ррррр!!!

likes  

Лайков: 0



Лайки

29.06.2020 22:35:26

Начал реализацию лайков. Нашел картинки. Вставил в модель тем обсуждений и в комментарии. Можно плюсовать и минусовать. Пока без ограничений по числу, модель юзер-лайков надо будет отдельно сделать. Возврат информации через json, но скрипты для обработки пока не писал. Ну и понятно, это пока на локалхосте. На сервер поедет готовое решение.
Кстати, с картинками гораздо веселее все смотрится. Все же надо дизайнить. Сейчас, после "курса молодого бойца", многие вещи делаются легко и непринужденно. Надо пробовать, я сейчас гораздо подготовленнее, чем был тройку месяцев назад. По крайней мере, те изменения, которые сделал за последние дни раньше ковырял бы втрое дольше.

likes  

Лайков: 0




Все теги: blog   media   fun   cloud   forum   vps   email   astro   site   dreams   tasks   all   js   life   users   MtG   user   Meteo   pythonanywhere   slider   euclidea   personal_messages   django   likes   search   pictures   chess   math   gallery   artist   watercolor   film   acril   pencil   traveling   book   virus   music   oil   pen   gouache