Если я напишу пользовательское модальное окно JQuery или «лайтбокс», какова механика отключения всех тегов привязки и других интерактивных элементов вне div?
Каким-то образом вы фиксируете все события и проверяете, нет ли попадания внутрь прямоугольника div и отбрасываете все остальные?
Меня не интересует, как создать тусклое или прозрачное наложение. Этот вопрос задавался ранее, но ответы были сосредоточены на наложении не отключающих элементов.
Чтобы отключить все ссылки, вам просто нужно использовать код, такой как:
var modal = false; $('body').delegate('a', 'click', function(){ if(modal){ return false; } });
Затем, когда вы показываете свой лайтбокс, просто измените modal = true.
Самый простой способ сделать это - действительно наложение.Наложение фиксирует все щелчки, покрывая элементы под ним.Если вы не хотите, чтобы это было видно, просто сделайте это прозрачным.