Как вы прикрепляете событие jquery только к внешнему div? - PullRequest
2 голосов
/ 25 февраля 2011

Я работаю над лайтбоксом jQuery.Это прекрасно работает, но я хотел бы добавить еще одну особенность: я бы хотел, чтобы окно закрывалось, когда щелкает окружение, "диммер", div, а не когда основное., У меня есть два div: div A и div B. Div A имеет полупрозрачное фоновое изображение и покрывает весь экран (он абсолютно расположен).Div B меньше, и внутри div A (также абсолютно позиционирован) и имеет основное содержимое лайтбокса.Можно ли прикрепить событие click к div A (внешнему), которое не срабатывает, если div B (внутреннее) нажато?

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

Лучший способ добиться этого - это ...

$('#your-light-box').click(function(event) {
   event.stopPropagation();
});

$(document).click(function() {
  closeLightbox();
});
4 голосов
/ 25 февраля 2011

В случае нажатия кнопки div B верните false. Это гарантирует, что событие не всплывет и не вызовет щелчок родительских элементов (div A)

Даже если вы ничего не делаете по клику Div B, просто верните false

$("#divB").click(function(){
    return false;
});
...