Вы почти у цели, попробуйте то, что @Ashley Brown прокомментировал в своем сообщении, и используйте то, о чем вы написали pointer-events
, чтобы избежать одного и того же события снова и снова, если оно уже проверено.
document.querySelector('label:first-of-type span').onclick = e => console.log(e.target)
document.querySelector('label:last-of-type span').onclick = e => console.log(e.target)
label {
cursor: pointer;
color: grey;
font-size: large;
}
input[type=radio] {
display: none;
}
input[type=radio]:checked ~ * {
color: blue;
font-weight: bold;
pointer-events: none;
}
<label><input type="radio" name="step"><span>Step 1</span></label>
<label><input type="radio" name="step"><span>Step 2</span></label>
Надеюсь, это поможет или, по крайней мере, укажет вам правильное направление :)