Почему у вас есть div, обертывающий ваш элемент <td>
?Я считаю, что это недопустимая разметка HTML и может иметь непредсказуемое поведение в разных браузерах.
На странице MSDN тега td
Разрешенные родители: A <tr>
element.
Из нескольких экспериментов, основанных на фрагменте ниже, если ваш <td>
находится внутри div
внутри tr
, то хром рефакторирует его, чтобы переместить элемент div
за пределами таблицы.
Событие click не работает, потому что div находится не рядом с td
, а где-то вне таблицы.
Аналогично, вы не можете видеть установленный цвет фонапоскольку div, вероятно, имеет нулевую высоту (у него ничего нет внутри, td находится внутри таблицы, div теперь снаружи).Установите значение padding:20px
или height
в div, чтобы увидеть, где оно на самом деле появляется.(Вы также можете проверить это в инструментах разработчика, если вы используете браузер, в котором он есть)
td {
pointer-events: none;
background: green;
}
div {
background: red;
padding: 20px;
}
<table>
<tr>
<div onclick="alert('Hello')" class="container">
<td class="inner">
test
</td>
</div>
</tr>
</table>