Я уже несколько часов ломаю себе голову, не могу понять почему мой код не работает правильно. В общем моя цель чтобы при клике на главной странице, менялся текст внутри тэга <h1>
Ранее я уже выполнил это простым способом как показано ниже, и конечно прописывал каждый класс элемента .ottogi
.sojo
.natura
ну итд. Можно ссылаться по следующей ссылке http://test1.testkz.ru/
var text = $('.inner-container h1').text();
var changeString = $('.inner-container h1');
$('.ottogi').click(function() {
if (text == 'Ottogi') {
$(changeString).text('Ottogi');
}
});
$('.sajo').click(function() {
if (text == 'Ottogi') {
$(changeString).text('Sajo Hapyo');
}
});
Потом, чтобы не повторять данную процедуру 6 раз, решил создать объект, и пробижаться по нему циклом for ... in
для реализации данной процедуры.
Возможно мой if
не срабатывает правильно. Ребята посмотрите и помогите пожалуйста
const selectorToResponse = {
'.ottogi': 'Ottogi',
'.sajo': 'Sajo Hapyo',
'.natura': 'Natura Bogata',
'.maloo': 'TOO Maлy',
'.dongush': 'Dongsuh',
'.may': 'OOO Maй'
}
// Prefixing with $ to denote that is an element, not text etc
const $header = $('.inner-container h1')
for (const selector in selectorToResponse) {
$(selector).click = function () {
// using $header.text() inside function so that is current header text
// `text` never changed in your example
if ($header.text() === 'Ottogi') { // using === instead of ==
const response = selectorToResponse[selector]
$header.text(response)
}
}
}
Вот HTML
<div class="left-main col-lg-3 col-md-3 col-sm-12 col-xs-12">
<div class="shadow-effect"><p class="ottogi">OTTOGI</p></div>
<div class="shadow-effect"><p class="sajo">Sajo Hapyo</p></div>
<div class="shadow-effect"><p class="natura">Natura Bogata</p></div>
<div class="shadow-effect"><p class="maloo">ТОО Малу</p></div>
<div class="shadow-effect"><p class="dongush">Dongsuh</p></div>
<div class="shadow-effect"><p class="may">ООО Май</p></div>
</div>
<div class="right-main col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="inner-container">
<h1>Ottogi</h1>
<h2>Южно - Корейские продукты питания высочайшего качества!</h2>
</div>
Вместо
const selectorToResponse = {
'.ottogi': 'Ottogi',
'.sajo': 'Sajo Hapyo',
'.natura': 'Natura Bogata',
'.maloo': 'TOO Maлy',
'.dongush': 'Dongsuh',
'.may': 'OOO Maй'
}
// Prefixing with $ to denote that is an element, not text etc
const $header = $('.inner-container h1')
for (const selector in selectorToResponse) {
$(selector).click = function () {
// using $header.text() inside function so that is current header text
// `text` never changed in your example
if ($header.text() === 'Ottogi') { // using === instead of ==
const response = selectorToResponse[selector]
$header.text(response)
}
}
}
Сократить код следующим образом
Получаете значение из текста меню и выводите его в заголовок.
$(function () {
var header = $('.inner-container h1');
$('.shadow-effect p').click(function () {
header.text($(this).text());
});
});
//может вообще можно без объекта обойтись? зачем сущности плодить без надобности?
selectorToResponse.forEach(function (i){
addEventListener("click", function(){
if ($header.text() === 'Ottogi') { // using === instead of ==
const response = selectorToResponse[selector]
$header.text(response)
}
});
});
А зачем вы selector как константу объявляете? да еще внутри цикла?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день! Пытаюсь добавить кастомное поле в админку и вывести туда значение сохраненное в БД в поле 'properties'В файл assets\components\tickets\js\mgr\comment\comment
A bug arises, the computer hits the already damaged ship and no longer makes moves, I do not know how to fix itSources by reference https://drive
Стоит задача организовать трансляцию HLS потоков на Smart TV телевизорах (LG, Samsung, Philips ect)