У меня есть простая лайтбокс на странице, где у иконки закрытия есть класс .closeIt
. Когда пользователь нажимает на значок закрытия, я хочу переместить фокус обратно на элемент ссылки, который вызвал лайтбокс.jQuery: Lightbox закрывает обработку событий
Я попытался добавить некоторую функцию, которая берет входную информацию о вызывающей ссылке и имени класса закрывающего значка.
function focusBack(triggeringLinkId,closingLinkClass){
$(closingLinkClass).click(function() {
$(triggeringLinkId).focus();
});
}
и для каждого лайтбокса, я вручную называется функцией назад, как это:
focusBack('#someLink','.closeIt')
этот подход отлично работает, если у меня есть только один осветителя на странице, но если у меня есть больше, чем один лайтбоксов , он начинает привязывать его к последней вызываемой функции, и теперь, когда бы я ни закрывался, фокус возвращается к триггерной ссылке, для которой я последний раз вызывал функцию focusBack
.
Каков наилучший подход к решению этой ситуации?
Я не знаю, является ли добавление или удаление кнопки для прослушивания нажатием кнопки «закрыть», это хорошая идея или нет, потому что вы можете переопределить другие действия над кликом. Однако вы можете использовать '$ (closedLinkClass) .off (« click »)', чтобы удалить прослушиватель кликов после каждого фокуса. –