Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как Найти координаты вектора в таблице? (https://javascript.ru/forum/jquery/56474-kak-najjti-koordinaty-vektora-v-tablice.html)

xTODx 17.06.2015 19:17

Как Найти координаты вектора в таблице?
 
Есть таблица, при нажатии на ячейку, нужно вывести её координаты.
Т.е. допустим (8:00;17.06.2015), как реализовать?
Алгоритм который пока-что в голове. - найти номер td в родительском tr-е, и номер tr-а в table.
Но как реализовать пока-что не придумал.
Подскажите что-то?
https://jsfiddle.net/b6qctuoj/1/

рони 17.06.2015 19:52

xTODx,
взять два массива из них сформировать таблицу с необходимым функционалом ... а можно и без массивов у вас всё попорядку.

xTODx 17.06.2015 19:54

Так есть же таблица, нужно только найти координаты того элемента, на который я нажимаю.
Возможно так?
function editcolor(obj){
		if($(obj).hasClass("green")){
			$(obj).removeClass("green");
			$(obj).addClass("yellow");
			type = 1;
		}else if($(obj).hasClass("yellow")){
			$(obj).removeClass("yellow");
			$(obj).addClass("red");
			type = 0;
		}else if($(obj).hasClass("red")){
			$(obj).removeClass("red");
			$(obj).addClass("gray");
			type = 0;
		}else{
			$(obj).removeClass("gray");
			$(obj).addClass("green");
			type = -1;
		}
		/*$.ajax({
					url: '/js/graph.php',
					type: "POST",	
					data: {type : type},
					dataType: 'json',
			  		success: function(data){
					}
		});*/
		var sr = obj;
		var left = sr.offsetLeft;
		var vh = $("table tr:first-of-type").height();
		var vw = $("table tr:first-of-type td:first-of-type").width();
		var h = $("table tr:nth-last-child").height();
		var w = $("table tr:nth-last-child td:nth-last-child").width();
		
		var top = sr.offsetTop-vh;
		var parent = sr.offsetParent-vw;
		while(parent && parent.tagName != "BODY")
		{
		   left += parent.offsetLeft;
		   top += parent.offsetTop;
		   parent = parent.offsetParent;
		}
		alert([left, top]);
		alert( left/w);
		

		
	}

рони 17.06.2015 20:04

xTODx,гмм

alert($(obj).offset())
так?

рони 17.06.2015 20:11

xTODx,
https://jsfiddle.net/b6qctuoj/3/

рони 17.06.2015 20:17

на всякий случай чтобы ваша функция editcolor работала с таблицей должен быть запущен режим no wrap body на https://jsfiddle.net

иначе клики надо переназначать

https://jsfiddle.net/b6qctuoj/5/

xTODx 18.06.2015 00:25

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

xTODx 18.06.2015 00:32

https://jsfiddle.net/b6qctuoj/7/
Вот, решено.

рони 18.06.2015 00:48

xTODx,
вы искали индексы строк и столбцов -- мда

рони 18.06.2015 00:57

xTODx,

var y = obj.parentNode.rowIndex-1;
        var x = obj.cellIndex-1;

зачем вам jquery непонятно - классы тоже прекрасно меняются без jquery


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