$("tr").not('.checkbox')
Этот код будет соответствовать всем tr
элементам, которые не имеют класса checkbox
. Как видите, ваш tr
не имеет этого класса, поэтому этот tr
будет соответствовать.
Есть 2 основных подхода к тому, что вы пытаетесь сделать. Вы можете либо проверить в функции, какой был исходный элемент clicked, и не перенаправлять, если это был флажок. Или вы можете добавить обработчик щелчка к флажку и вызвать e.stopPropagation()
.
$("tr .checkbox").click(function(e){
e.stopPropagation();
});