Как сделать клик по td в таблице, который будет открывать div в этой ячейке, и при клике по div не закрывать его?

Снова же сложности правильно поставленного вопроса. Поэтому опишу более детально:
Есть таблица NxN, в каждой ячейке прописан скрытый div (эдакое меню для ячейки). Я сделал событие отображения этого DIV четко по центру экрана, но проблема в том, что при нажатии на этот самый DIV он же и закрывается.
Привожу код события:
var elTD = false;
$("#pField").on("click", "td", function() {
	var id = $(this).data("id");
	if ( $(this).find("div").is(":visible") ){
		elTD = false;
		$(this).find("div").hide();
	} else {
		elTD = $(this).find("div");
		var top = ( ($(window).height()/2) - (elTD.height())/2);
		var left = ( ($(window).width()/2) - (elTD.width()/2) );
		elTD.css({ "width": elTD.width(), 'top': top, 'left': left }).fadeIn();
		elTD.html( elTD.html()+'<br/>'+$(window).width()+'<br/>'+elTD.width()/2 );
	}
});

Таблица автоматически генерируется, поэтому проще показать исходник
16208155.png

Как сделать что бы по нажатию на DIV ничего не происходило?
  • Вопрос задан
  • 390 просмотров
Решения вопроса 1
werftgyhj
@werftgyhj
js = just sex
надо сделать event.stopPropagation(); что бы предотвратить всплытие события. В разных браузерах всплытие происходит по разному либо на дочерние элементы либо на родительские. Так что по клику на div надо написать что то подобное
document.querySelector('td > div').addEventListener('click', function(event){
 event.stopPropagation();
 //event handler code here
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
wscms
@wscms
Так не получится?

if ($(this).hasClass('popup')) return false;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы