Не могу покрасить строку таблицы

Автор Огонек, 09 июля 2017, 10:59:14

« назад - далее »

Огонек

Я написал, что не работает, потому что уже проверил :(
прямо отсюда скопипастил

mAgency

Цитата: Огонек от 09 июля 2017, 10:59:14
Здравствуйте.
Создаю свою кастомную страницу в которой есть динамически формируемая скриптом таблица

$.each(my_orders, function() {

все работает отлично. Хочу по определенному условию покрасить определенные строки в другой цвет. Сначала решил без условия - просто все строки. Перепробовал штук 10 вариантов - не красятся.
Для чего each? Почему не for?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Огонек

Цитата: mAgency от 09 июля 2017, 13:14:35
Для чего each? Почему не for?
без каких-либо причин, просто делая свои формы, копирую готовые решения из "родных" форм престы.
так и здесь: скопировал форму "новый заказ" и вношу в неё правки под себя

tigran

$(').each(function(){
    if (a>b)
      $('tr').addClass('color');
});

Огонек

Цитата: tigran от 09 июля 2017, 13:47:46
$(').each(function(){
    if (a>b)
      $('tr').addClass('color');
});

Не то чтобы не совсем понял, скорее совсем не понял как это привязать к вот этому

$.each(my_payms, function() {
if (a>b)
html_carts += '<tr красный_цвет>';
else
html_carts += '<tr>';

tigran

После того как создали таблицу добавляете к нужным строкам класс или стили.

Огонек

Т.е. два цикла each ?
в первом создание таблицы, а во втором раскраска?

tigran

#22
Нет, если у вас функция each(callback(index, domElement)), то она выполняет функцию callback для каждого из выбранных элементов.
Можно со сменой класса. Или cоздаете функцию изменения свойств css
$("tr").css({background:#000})
Вызываете ее в each.

mistral

Цитата: Огонек от 09 июля 2017, 10:59:14
Здравствуйте.
Создаю свою кастомную страницу в которой есть динамически формируемая скриптом таблица

$.each(my_orders, function() {
html_orders += '<tr>';
html_orders += '<td>'+this.id_order+'</td>';
html_orders += '<td>'+this.date_add+'</td>';
html_orders += '<td>'+this.reference+'</td>';
html_orders += '<td>'+this.id_customer+'</span></td>';
html_orders += '<td>'+this.total_paid+'</td>';
html_orders += '<td>'+this.total_paid_real+'</td>';
html_orders += '<td>'+this.credit+'</td>';
html_orders += '<td><input type="checkbox" value="one"></td>';
html_orders += '<td><input type="text" value="0.00"></td>';
html_orders += '</tr>';
}


все работает отлично. Хочу по определенному условию покрасить определенные строки в другой цвет. Сначала решил без условия - просто все строки. Перепробовал штук 10 вариантов - не красятся.
Привожу тот вариант, на котором моя фантазия коничилась

html_orders += '<tr style="bgcolor:#00ff00;">';

Может кто-нибудь поможет? Желательно уже с использованием if (a>b) ... :)


html_orders += '<tr style="bgcolor:#00ff00;">';

Этот вариант тоже не срабатывает?
В таком случае у вас переопределяются стили для таблицы. Проверить нужно в javascript функциях и правилах css переопределения css.

Огонек

Цитировать
Код: [Выделить]
   html_orders += '<tr style="bgcolor:#00ff00;">';
Этот вариант тоже не срабатывает?
В таком случае у вас переопределяются стили для таблицы. Проверить нужно в javascript функциях и правилах css переопределения css.
Если честно, я не понял чем ваш вариант отличается от моего?
Я пошел по следующему пути:
1. Вставил текст

<style type="text/css">
.tablem .colored { background: #9999ff; }
</style>

а в скрипте поставил

$.each(my_payms, function() {
if (condition)
html_orders += '<tr class="colored">';
} else {
html_orders += '<tr>';
}

в результате вместо покраски таблица сжалась на пол-экрана - ?

mistral

Я привел ваш код. Вы создаете таблицу уже со стилями. И они не работают. Так не должно быть. Есть какая-то функция, которая меняет стили после отрисовки страницы. Я про такой вариант писал.

mAgency

Файл с полным кодом javascript приложите, а то не совсем понятно что вы пытаесь сделать.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Виталий

Цитата: mistral от 09 июля 2017, 16:32:16
Я привел ваш код. Вы создаете таблицу уже со стилями. И они не работают. Так не должно быть. Есть какая-то функция, которая меняет стили после отрисовки страницы. Я про такой вариант писал.
Вот ответ на ваш вопрос.
Фон для таблиц в админке определен в файле /admin/themes/default/css/admin-theme.css
Если хотите заменить на свой, то менять фон нужно у тега td. Так как вы хотите делать (без стилей), то определяйте стили для
html_orders += '<td style="background: green">'+this.id_order+'</td>';
В prestashop предусмотрено переопределение стилей админки, лучше сделать через изменения правил css.
Для этого нужно добавить свои стили в файл /admin/themes/default/css/overrides.css.
При обновлении ничего не пропадет.
Cоздание интернет сайтов Webstudio UwK

Огонек

Цитата: Виталий от 09 июля 2017, 17:35:08
Цитата: mistral от 09 июля 2017, 16:32:16
Я привел ваш код. Вы создаете таблицу уже со стилями. И они не работают. Так не должно быть. Есть какая-то функция, которая меняет стили после отрисовки страницы. Я про такой вариант писал.
Вот ответ на ваш вопрос.
Фон для таблиц в админке определен в файле /admin/themes/default/css/admin-theme.css
Если хотите заменить на свой, то менять фон нужно у тега td. Так как вы хотите делать (без стилей), то определяйте стили для
html_orders += '<td style="background: green">'+this.id_order+'</td>';
В prestashop предусмотрено переопределение стилей админки, лучше сделать через изменения правил css.
Для этого нужно добавить свои стили в файл /admin/themes/default/css/overrides.css.
При обновлении ничего не пропадет.

+ Спасибо что вникли - все получилось.