11.02.2018, 12:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
spinastr,
лень не лучший помощник в написании сайта и вашу лень я обслуживать не буду. Не копировать один в один верстку и стили предлагаемые, а читать и вникать, что это и как работает. А поняв применять у себя.
Нет стрелки вверху потому, что стиль перекрывается другим стелем в шапке.
Хотите сами втыкать стрелочки, на здоровье, я комментирую, а делайте сами.
Этой хрени Value > Previous не требуется, сервер уже вернул готовое в rate: 1 - курс вырос, 0 - курс упал.
Всяких функций в JS и прочей бодяги тоже не требуется - адресом куда будет помещен курс служат ключи json. Элемент текущего курса имеет класс current, предыдущего previous.
Удалите все стили что я писал, оставив только это:
.up {
color: #0f0; /*зеленый цвет*/
}
.down {
color: #f00;
}
А для этих классов что будут в шапке - белый, что в чем в вашей шапке - самостоятельно разобраться.
$.getJSON("чего-то там", function(data) {
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
})
});
Последний раз редактировалось laimas, 11.02.2018 в 13:20.
|
|
11.02.2018, 16:01
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
laimas,
Спасибо, вам но я не лентяй, так как уже вторую неделю пытаюсь сделать курс. И в Вашем скрипте двое суток не спал и пытался понять. Просто говорю никогда не встречался с php и js. Знаю на 77% HTML и css.
<style>
.up {color: #0f0; /*зеленый цвет*/}
.down {color: #f00;}
</style>
<div class="ratehead">
<span class="current"></span>
</div>
<script>
$.getJSON("домен.ру", function(data) {
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
})
});
</script>
Что значит эта надпись и стрелки нету?
Не поленился, почитал тут. Понял что две проблемы может быть.
1. Функция без директивы return возвращает undefined.
2. Обращение к несуществующему свойству объекта также даст undefined.
А как что исправить, я не понимаю, подскажите в чём тут ошибка?
Последний раз редактировалось spinastr, 11.02.2018 в 16:14.
|
|
11.02.2018, 16:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от spinastr
|
Знаю на 77% HTML и css.
|
А что же тогда мечетесь, давно уже можно было разобраться со стрелкой.
.имя родительского_класса_в_шапке .up:after {
dispaly: block; /*или block!important; или ... найти, понять изменить, отладчик бразуера в помощь*/
color: #fff; /*белый цвет*/
}
Тоже самое и для .down:after который в шапке. Вы даже не добавили в CSS стиль цвета для стрелки в шапке, это разве не лень, если знать на 77% HTML и css?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
.ratehead {
background-color: #0164C6;
color: #fff;
}
.ratehead .up, .ratehead .down {
color: #fff;
}
</style>
<div class="ratehead">
<span class="current"></span>
</div>
<script>
//именно такое и получит Ajax
var data = {"current":{"date":"11.2.2018","value":58.17,"rate":1},"previous":{"date":"10.2.2018","value":57.67,"rate":1}};
//и вот тут данные этого объекта помещаются на свои места
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
})
</script>
Все на месте?
Последний раз редактировалось laimas, 11.02.2018 в 16:49.
|
|
11.02.2018, 16:56
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
laimas,
<style>
.up {color: #0f0; /*зеленый цвет*/}
.down {color: #f00;}
</style>
<div class="ratehead">
<span class="current"></span>
</div>
<script>
//именно такое и получит Ajax
var data = {"current":{"date":"11.2.2018","value":58.17,"rate":1},"previous":{"date":"10.2.2018","value":57.67,"rate":1}};
//и вот тут данные этого объекта помещаются на свои места
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
})
</script>
Да, спасибо сейчас выглядит как я хотел.
Ещё вопрос:
1. Можно в подсказку при наведении вывести дату курса? Что бы не лазить на хост и не проверять.
2. Куда пропала строка с кодом где написан домен и почему работает без него?
$.getJSON("домен.ру", function(data) {
Последний раз редактировалось spinastr, 11.02.2018 в 16:59.
|
|
11.02.2018, 16:59
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
Снова ошибка undefined
<script>
//именно такое и получит Ajax
$.getJSON("домен.ру", function(data) {
//и вот тут данные этого объекта помещаются на свои места
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
})
});
</script>
|
|
11.02.2018, 17:07
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
215+ сообщений в теме и так и не удалось решить 15-минутную задачу )
spinastr, undefined на месте "стрелочки" означает, что у вас "o.rate" не является целочисленным больше 0 и меньше или равно 1.
Ошибка в данных, выведите их в консоль и посмотрите, что вам вернул сервер.
|
|
11.02.2018, 17:12
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
Сообщение от Nexus
|
215+ сообщений в теме и так и не удалось решить 15-минутную задачу )
spinastr, undefined на месте "стрелочки" означает, что у вас "o.rate" не является целочисленным больше 0 и меньше или равно 1.
Ошибка в данных, выведите их в консоль и посмотрите, что вам вернул сервер.
|
Я не понимаю, какая консоль, какой сервер?
Я сижу в инвалидной коляски у меня спастика в ногах уже устал, что за мучения?
Простите!
|
|
11.02.2018, 17:14
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от spinastr
|
1. Можно в подсказку при наведении вывести дату курса? Что бы не лазить на хост и не проверять.
|
Можно, и для этого на сервер лазить не надо, даты курса уже есть в json. Как по наведению их показать, насколько я помню пример приводили. HTML средствами это делается просто:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
.ratehead {
background-color: #0164C6;
color: #fff;
}
.ratehead .up, .ratehead .down {
color: #fff;
}
</style>
<div class="ratehead">
<span class="current"></span>
</div>
<script>
//именно такое и получит Ajax
var data = {"current":{"date":"11.2.2018","value":58.17,"rate":1},"previous":{"date":"10.2.2018","value":57.67,"rate":1}};
//и вот тут данные этого объекта помещаются на свои места
$.each(data, function(k, o) {
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>').attr("title", o.date)
})
</script>
О "красивеньких подсказках" искать и читать в сети, в частности тут. Это можно сделать?
Сообщение от spinastr
|
2. Куда пропала строка с кодом где написан домен и почему работает без него?
|
Никуда ничего не пропало, это пример для того чтобы он работал здесь на форме, поэтому просто разбор самого объекта.
Те кто не знают JS, используют jQuery, и ничего, не страшно. Пора начинать изучать. За три дня все не получится, но так и должно быть, учение требует и времени, и упорства.
Сообщение от spinastr
|
Снова ошибка
|
Открывать отладчик браузера и ....
|
|
11.02.2018, 17:34
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
laimas,
1. tooltip - мне ненужно, просто вывести в
title="СЮДА ВЫВЕСТИ ДАТУ - Посмотреть курс валют"
.attr('title', data.Date +"- Посмотреть курс валют")
Совместить?
2. Открыл консоль и что там делать?
https://pp.userapi.com/c840434/v8404...OaNndEOmko.jpg
|
|
11.02.2018, 17:47
|
Профессор
|
|
Регистрация: 02.05.2016
Сообщений: 390
|
|
Про подсказку понял:
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>')
$('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>').attr("title", o.date)
.attr("title", o.date)
Тут хранится дата из джексона o.date
|
|
|
|