blur
не всплывает, поэтому он не будет виден, если вы будете использовать такое делегирование событий - вы увидите событие blur
только в том случае, если его прослушиватель подключен непосредственно к рассматриваемому элементу.Если вы хотите использовать делегирование событий, вместо этого прослушайте событие focusout
:
function fix(event) {
console.log("hello");
}
document.addEventListener("focusout", fix, false);
<table>
<tr>
<td>class</td>
<input type="text" class="data"></td>
</tr>
<tr>
<td>name</td>
<td><input type="text" class="data"></td>
</tr>
</table>
Другая возможность заключается в прослушивании события blur
на этапе захвата:
function fix(event) {
console.log("hello");
}
document.addEventListener("blur", fix, true);
// ^^^^
<table>
<tr>
<td>class</td>
<input type="text" class="data"></td>
</tr>
<tr>
<td>name</td>
<td><input type="text" class="data"></td>
</tr>
</table>