evt.currentTarget.name
означает, что прямо сейчас вы нацеливаетесь на свой контейнерный объект (pcs
), а не на его содержимое (hr_pc, m_pc
и т. Д.). В этом ключевое отличие между evt.target
и evt.currentTarget
. Если вы проследите имя currentTarget, оно будет идентичным для каждой намеченной цели.
Так что, чтобы исправить, вы, безусловно, можете сделать эту работу с
evt.target.name
Однако у вас могут возникнуть проблемы, если вы наведите курсор мыши на кнопку, поскольку цель больше не будет непосредственным родителем кнопок (это будет сама кнопка), и кнопка, вероятно, снова вызовет visible=false
. 1010 *
Вероятно, я бы пошёл в другом направлении: напишите класс, содержащий кнопку и собственных слушателей. Это был бы хороший план, если есть много общего поведения (но в зависимости от ваших потребностей, может не быть).
Итак, да, прочитайте currentTarget vs target