Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Ячейка таблицы - ссылка. Внутри этой ячейки другие ссылки. (https://javascript.ru/forum/jquery/27618-yachejjka-tablicy-ssylka-vnutri-ehtojj-yachejjki-drugie-ssylki.html)

Alexd 19.04.2012 11:15

Ячейка таблицы - ссылка. Внутри этой ячейки другие ссылки.
 
Например есть такая таблица.
<table>
<tr>
<td class="m-action">
<input type="checkbox" name="name_checkbox" value=""/>
<a id="id_link" href="page1.php">ссылка</a>
</td>
</tr>
</table>

Если использовать следующие действия, то при клике по ссылкам или чекбоксам внутри этой ячейки осуществляется переход на страницу page2.php.
$(".m-action").attr("style", "cursor:pointer;").click(function() {
  window.location.href='page2.php';
});

А как сделать чтобы переход на страницу page2.php осуществлялся только при клике на свободном месте ячейки?

vuler 19.04.2012 12:20

т.е. клик просто на ячейку td в любое место кроме checkbox-a и <a>?
пиши примерно так. Этот пример работает для клика по всему документу, сам поправишь что нужно.
$(document).on('click', function(event)
{
	if($(event.target).closest(".inp,.hrefer").length)
	return;
}

тут обработчик ставится на весь документ, в функцию передается событие - event. Если в родителях $(event.target). есть элементы с классами .inp,.hrefer, то функция обрубается. Если же таких родителей нет, то идет выполнение дальше и после return-а дописывай что нужно - переход по ссылке и прочее

vuler 19.04.2012 12:21

ой не помню closest Работает с двумя селекторами или нет, ну если че, сделаешь 2 условия :))

Alexd 19.04.2012 16:19

Спасибо, разобрался. Очень помогли. Да, closest работает с двумя селекторами.
$(".m-action").on("click", function(event)	{
  if($(event.target).closest("input, a").length) return;
  window.location.href='page2.php';
});


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