Ответ может быть ситуативным, но, как всегда, следует отдавать предпочтение простоте, а не эффективности, если только нет проблемы с производительностью.
Я думаю, что проверка условий в обработчике событий является более простой, централизованной и более сложной.последовательный подход, чем связывание / открепление обработчиков событий.Я часто использую событие sitewide click
, которое проверяет некоторые пользовательские данные, связанные с элементом HTML, чтобы определить ход действий.
Как и в вашем примере, одно из этих действий - "ничего не делать", напримерЯ установил флаг, который указывает, что он был отключен.Другой вариант - удалить обработчик кликов.Но для этого требуется больше кода, и это означает, что управление кодом было разделено: тогда как раньше он был полностью в обработчике кликов, теперь он в обработчике кликов, и что-то еще, что добавляет или удаляет событие.
Если обработчик событий оказывает какое-либо ощутимое влияние на производительность при привязке к пользовательскому интерфейсу, возможно, вы захотите пересмотреть это, но я не могу придумать много ситуаций, когда это произойдет.