Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Смена фона по щелчку (https://javascript.ru/forum/events/64463-smena-fona-po-shhelchku.html)

People[0] 13.08.2016 12:46

Смена фона по щелчку
 
Всех приветствую. Есть сайт на опенкарт (thaiboxer.com.ua) хочу сделать что бы при смене категории товара, менялся фон под менюбаром. Решил прописать в теле $(document).ready() функцию обработчик каждой ссылки меню и этот обработчик извлекая из значение из href ссылки, устанавливает то, или иное значение.

$(menu .nav).on('click', function(e){
Var value=$(e.target).attr('href').substring(62,64);
If(c=='62'){
$('#image_div').css('background', 'rgb(30,30,30)'); // просто любой цвет, для // проверки
}
}

И вот клацаешь по ссылке, картинка меняется, но только на долю секунды, пока страница не обновиться, а потом меняется обратно. Интуитивно понимаю, что вопрос детский, но я совсем новичек, поэтому прошу не судить строго.

warren buffet 13.08.2016 14:09

Определяй категорию в модели и задавай адрес фона для вьюхи (рендера) на сервере.

На клиенте менять такие вещи быстро не получится, или надо сразу после меню твоего бара втыкать скрипт со слов Var value, заодно заменив Var на var и поменяв attr('href') на location.href.

ЗЫ Ну включи мозг уже. Какой смысл менять что-то на этой странице после щелчка на ссылке, которая откроет другую страницу, с новым меню в баре и всем остальным вновь полученным с сервера.

People[0] 13.08.2016 15:10

Хмм, кажется понял. Var это телефон изменил, код писал вручную.

warren buffet 13.08.2016 18:31

опенкарт я видел мельком, олдскул, все тупо и понятно, так что запросто найдешь где проверить какая страница запрошена и оттуда выдашь что в фон грузить. Иначе тебе все равно искать в шаблоне вывод этого меню и писать под ним <script></script>, то есть бессмысленное занятие, поскольку чуть выше ты можешь сразу в стилях прописать требуемую картинку. Это же обычное дело на сайтах, когда картинка, типа иллюстрация или элемент дизайна меняется в зависимости от выбранной категории.

ЗЫ Это если контент загружается динамически, то есть меню не перезаписывается, тогда можно на калбек запроса повесить смену фона.

People[0] 13.08.2016 19:21

Спасибо, уже сделал через php, а вообще доходит тяжело, может посоветуете, где почитать на эту тему можно?

warren buffet 15.08.2016 12:17

А что там читать. Задача php в рамках веб-сайта - генерить html, а поскольку кроме html у нас еще есть такие ресурсы как style, script, img, svg, font, etc - то значит php может генерить и их. Например ты можешь сгенерить функцию на жабаскрипте забив ей какое-то значение прямо из php

$welcome_message = 'Привет участникам соревнований';

echo '<script>alert("' .$welcome_message. '");</script>';


В html получится

<script>alert("Привет участникам соревнований");</script>


И когда парсер дойдет до этого места, получишь привет.

Или вот так я генерю стили для текущего активного пункта меню, и он подсвечивается или как-то иначе оформляется без жаба-скриптов.

$style='{text-decoration:underline!important;color:#E5430A;}';
echo '#tm-'.$this->model.$style;


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