По сути, я хочу щелкнуть в любом месте страницы, кроме поля ввода, и на одном элементе уровня блока (по расширению все дочерние элементы) стереть указанное поле ввода. Поэтому я добавляю событие onclick ко всему документу. Чтобы сохранить вышеуказанные условия, я поставил условия перед четкими инструкциями, чтобы делать это только в том случае, если событие не возникло из-за определенных элементов.
clearSearch = function (e){ e ? e : e = window.event; e.target ? target = e.target : target = e.srcElement; if (target.nodeName != "INPUT" && document.getElementById('ul')) document.getElementById('input').value = ""; }
С помощью этого метода, если я хочу продолжать нажимать на ul, чтобы не вызывать действие, я должен явно указать это в этом операторе if. Затем я должен сделать то же самое для элементов li под ul. Затем я создаю любых других детей.
В основном это кажется действительно неэффективным, и мне было интересно, может ли кто-нибудь помочь мне придумать лучшее решение для этого беспорядка, который я создал для себя.