Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 26.01.2020, 20:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от izumov
В чем смысл приведенного выражения?
Сообщение от рони
уберите размер из ячеек, текст и так по центру в ячейке.
Ответить с цитированием
  #32 (permalink)  
Старый 27.01.2020, 21:00
Аспирант
Отправить личное сообщение для izumov Посмотреть профиль Найти все сообщения от izumov
 
Регистрация: 05.05.2019
Сообщений: 72

Мой макет http://montaj.vianor-konakovo.ru/goods_new11.html
Но не все Заголовки ЛГ,"P,LT" так и остались прижаты к правому краю картинку что я вижу прикрепляю к сообщению
на конопку перенести в корзину заказов навесил код
var cel=$("#goods").find("thead th:eq(5)")
cel.align='left';
$(cel).css('padding','0');
$(cel).css('text-align','left');надеялся что заголовок ЛГ сдвинется влево- не шелохнулся. Для меня загадка почему элемент заголовка не воспринимает команду по применению правила css. Как заставить заголовок отреагировать?
Изображения:
Тип файла: jpg Хром1.jpg (35.1 Кб, 2 просмотров)
Ответить с цитированием
  #33 (permalink)  
Старый 27.01.2020, 21:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

izumov,
у вас ячейки сдвинуты, а не текст внутри ячеек, почему это так я не знаю, вам нужен другой специалист, мне совсем непонятно зачем что-то менять, видимо вы создаёте сами проблему, либо берёте таблицу с чужой разметкой.
Ответить с цитированием
  #34 (permalink)  
Старый 28.01.2020, 09:29
Аспирант
Отправить личное сообщение для izumov Посмотреть профиль Найти все сообщения от izumov
 
Регистрация: 05.05.2019
Сообщений: 72

а можно ли программно сдвинуть эту ячейку в нужное место?
Ответить с цитированием
  #35 (permalink)  
Старый 28.01.2020, 09:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от izumov
а можно ли программно сдвинуть эту ячейку в нужное место?
Сообщение от рони
уберите размер из ячеек, текст и так по центру в ячейке.
Сообщение от рони
вам нужен специалист по вёрстке css/html
в ваших ячейках заголовка(thead) таблицы указаны размеры, зачем и кто указал не знаю, ячейки тела таблицы(tbody) не совпадают с ячейками заголовка(thead), в этом вся проблема.
Ответить с цитированием
  #36 (permalink)  
Старый 28.01.2020, 15:18
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от izumov
на конопку перенести в корзину заказов навесил код
Сообщение от рони
а можно ли программно сдвинуть эту ячейку в нужное место?
Делайте это через CSS. Кстати у вас в CSS куча ошибок. Не штампуйте !important где попало!

Кстати вы можете скачать сразу всю базу данных и уже с ней работать. Тогда переключение между страницами будет быстрей! Фильтровать вы можете на клиенте!

А ячейки у вас не сдвинуты, это две разные таблицы!
Ответить с цитированием
  #37 (permalink)  
Старый 28.01.2020, 16:44
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Вот ради интереса посмотрел, как работать с этим кодом от jQuery DataTable...

Таблица правильно отображается, также сделал фильтр (строки №№187–198), но он не совсем правильно работает (нужно убрать из списка модели после выбора бренда в списке, и наоборот), но я думаю, что такой фильтр не нужен, поскольку поиск работает по умолчанию!

Я скачал все данные из вашей базы и поместил в data.json для этого примера. Вам нужно переделать скрипт на сервере, чтобы он возвращал все данные и запрашивать эти данные только один раз. Вот пример...

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
	<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/dataTables.jqueryui.min.css">
	<style>

		body {
			overflow-y: scroll;
			font: 1em system-ui, Arial, sans-serif;
		}
	
		table#goodies {
			white-space: nowrap;
			letter-spacing: -0.025em;
			font-size: 10px;
			table-layout: fixed;
			display: block;
			overflow: auto;
		}

		#goodies-filter {
			margin: 1em 0;
		}

		select, input {
			border: 1px solid #CCC;
			border-radius: 4px;
			background-color: #FFF;
			background-image: none;
			color: #000;
			font: inherit;
			padding: 4px;
			margin: 0;
			box-sizing: border-box;
		}

		.counter-button {
			all: unset;
			font-weight: bold;
			font-size: 200%;
			color: red;
			padding: 0 0.1em;
		}

	</style>
</head>
<body>
	<div id="goodies-filter">
		<label>
			Бренд:
			<select id="goodies-brand-filter">
				<option value="">все</option>
			</select>
		</label>
		<label>
			Модель:
			<select id="goodies-model-filter">
				<option value="">все</option>
			</select>
		</label>
	</div>
	<table id="goodies" class="display" style="width:100%">
		<thead>
			<tr>
				<th>Код</th>
				<th>Бренд</th>
				<th>Модель</th>
				<th>P, LT</th>
				<th>Размер</th>
				<th>ЛГ</th>
				<th>Индекс</th>
				<th>Иное</th>
				<th>Цена</th>
				<th>Остаток</th>
				<th>Заказ</th>
			</tr>
		</thead>
		<tfoot>
			<tr>
				<th>Код</th>
				<th>Бренд</th>
				<th>Модель</th>
				<th>P, LT</th>
				<th>Размер</th>
				<th>ЛГ</th>
				<th>Индекс</th>
				<th>Иное</th>
				<th>Цена</th>
				<th>Остаток</th>
				<th>Заказ</th>
			</tr>
		</tfoot>
	</table>
	<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
	<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
	<script src="https://cdn.datatables.net/1.10.20/js/dataTables.jqueryui.min.js"></script>
	<script>
	
	var table = $("#goodies").DataTable({
		processing: true,
		autoWidth: true,
		pageLength: 10,
		ajax: "https://cdn.glitch.com/348d485e-4ba6-4841-a41e-5865874b2d66/data.json",
		columnDefs: [
			{ width: "70px", targets: [0] }, //код
			{ width: "50px", targets: [1] }, //бренд
			{ width: "200px", targets: [2] }, //модель
			{ width: "51px", targets: [3] }, //P,L
			{ width: "150px", targets: [4] },// размер
			{ width: "44px", targets: [5] },// ЛГ
			{ width: "50px", targets: [6] }, //индекс
			{ width: "136px", targets: [7] }, //иное
			{
				width: "70px", targets: [8],
				render: $.fn.dataTable.render.number(' ', '.', 2, ' ', '')
			}, //цена
			{ width: "50px", targets: [9] },  //остаток
			{
				width: "50px", targets: [10], className: "goodies-order",
				render: function (data, type, row) {
					return [
						'<button class="counter-button" data-inc="-1">−</button>',
						'<input type="number" style="width: 5em;" min="0" max="' + row[9] + '">',
						'<button class="counter-button" data-inc="+1">+</button>'
					].join("")
				}
			} //заказ
		],
		language: {
			processing: "Подождите...",
			search: "Поиск:",
			lengthMenu: "Показать _MENU_ записей",
			info: "Записи с _START_ до _END_ из _TOTAL_ записей",
			infoEmpty: "Записи с 0 до 0 из 0 записей",
			infoFiltered: "(отфильтровано из _MAX_ записей)",
			infoPostFix: "",
			loadingRecords: "Загрузка записей...",
			zeroRecords: "Записи отсутствуют.",
			emptyTable: "В таблице отсутствуют данные",
			paginate: {
				first: "Первая",
				previous: "Предыдущая",
				next: "Следующая",
				last: "Последняя"
			},
			aria: {
				sortAscending: ": активировать для сортировки столбца по возрастанию",
				sortDescending: ": активировать для сортировки столбца по убыванию"
			},
			select: {
				rows: {
					_: "Выбрано записей: %d",
					"0": "Кликните по записи для выбора",
					"1": "Выбрана одна запись"
				}
			}
		}
	});

	table.on("init", function() {
		$("#goodies-brand-filter").append(getUniqueItems(1));
		$("#goodies-model-filter").append(getUniqueItems(2));

		function getUniqueItems(column) {
			return $.map(
				Array.from(new Set(Array.from(table.column(column).data()))).sort(),
				function (item) { return $("<option />").text(item); }
			)
		}
	});

	$("#goodies").on("click", ".counter-button", function(event) {
		var button = $(event.target);
		var inc = Number(button.attr("data-inc"));
		var input = button.closest("td").find("input");

		var min = Number(input.attr("min"));
		var max = Number(input.attr("max"));
		var value = Number(input.val());
		input.val(Math.max(min, Math.min(value + inc, max)) || "");
	});

	$("#goodies-filter [id^='goodies-'][id$='-filter']").on("change", function() {
		var brand = $("#goodies-brand-filter").val();
		var model = $("#goodies-model-filter").val();
		$("#goodies_filter input").val([brand, model].join(" ").trim()).trigger("input");
	});

	$("#goodies_filter input").on("input", function(event) {
		if(event.originalEvent.isTrusted) {
			$("#goodies-brand-filter").val("");
			$("#goodies-model-filter").val("");
		}
	});

	</script>
</body>
</html>

Последний раз редактировалось Malleys, 28.01.2020 в 18:41. Причина: Добавил, чтобы критерии фильтра добавлялись в поле поиска, Ещё переделал кнопки +/-, Ещё убрал сворачивание кода, а то не вид
Ответить с цитированием
  #38 (permalink)  
Старый 28.01.2020, 17:27
Аспирант
Отправить личное сообщение для izumov Посмотреть профиль Найти все сообщения от izumov
 
Регистрация: 05.05.2019
Сообщений: 72

в тексте html заголовки таблицы объявлены без размеров.Сам удивляюсь откуда они взялись там.
Ответить с цитированием
  #39 (permalink)  
Старый 28.01.2020, 17:32
Аспирант
Отправить личное сообщение для izumov Посмотреть профиль Найти все сообщения от izumov
 
Регистрация: 05.05.2019
Сообщений: 72

подскажите пожалуйста откуда взялись 2 таблицы?в инструменте отладчика я не вижу 2 таблицы

Последний раз редактировалось izumov, 28.01.2020 в 17:39. Причина: опечатка в тексте
Ответить с цитированием
  #40 (permalink)  
Старый 28.01.2020, 18:23
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от izumov
в инструменте отладчика я не вижу 2 таблицы
Да вы вообще многих проблем не видите! Я вам показал в посту №37, как инициализировать этот плагин, чтобы не было проблем, с которыми вы сталкиваетесь.

Кстати, я посмотрел, как вы написали обработку кнопок +/-, так вот используйте делегацию и data-* атрибут... тогда можно написать код без повторения (всего-то 10 строк, смотрите улучшенный код в посте №37)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Применить css к DOM элементу через n-колено Sherminator Events/DOM/Window 2 14.02.2013 21:37
Назначение CSS класса динамически созданному элементу fennick Events/DOM/Window 2 31.07.2012 16:53
DOM в подключаемых CSS файлах function Events/DOM/Window 2 24.03.2012 22:12
Узнать CSS правило для элемента vinet Events/DOM/Window 4 10.12.2010 08:12
Не изменяется DOM после назначения класса css в Chrome khusamov Общие вопросы Javascript 5 22.03.2010 20:45