Как перейти к следующему изображению, если щелкнуть кнопку .next_image, но закрыть окно Facebox, если щелкнуть в другом месте

Примечание. Я изучаю jQuery, поэтому, пожалуйста, простите за новый вопрос.

У меня есть галерея лайтбоксов, и я хочу, чтобы при нажатии кнопки «Далее» в галерее показывалось следующее изображение (как это уже происходит), но я нажимал в любом другом месте, он закрывает всплывающее окно окна Facebox.

Я немного поиграл с кодом, но я застрял здесь:

$('#facebox :not(.image_next)').click($.facebox.close)

Куда я шел с этим, (перевод):

"В блоке с идентификатором facebox, если щелчок не относится к классу image next, закройте окно facebox".

К сожалению, это закрывает окно независимо от того, где я нажимаю, в том числе на img с этим классом.

Любая помощь будет рок.


person KalElVZ    schedule 15.01.2011    source источник
comment
Вы можете опубликовать больше кода? ваш next код например и возможно разметка   -  person ifaour    schedule 15.01.2011


Ответы (2)


Событие клика всплывает от кнопки «Далее» к ее родителю, который является вашим #facebox div.

Вызовите event.stopPropagation() в обработчике щелчка для кнопки «Далее», чтобы событие не было «увидено» вашим обработчиком #facebox.

person John Flatness    schedule 15.01.2011
comment
Похоже, я не предоставил достаточно информации, поэтому у меня есть две ссылки: одна для отрендеренного HTML, а другая для самого js-интерфейса. Большое спасибо за ответ, ребята. Я ценю его. github.com/defunkt/facebox/blob/master/src/facebox. js и pastebin.com/CYUPNyyw - person KalElVZ; 15.01.2011

 $('#facebox :not(.image_next)').click($.facebox.close)

Это делает именно то, что вы заявили, что хотели. Просто отмечаю.

Вместо этого попробуйте

 $('#facebox :not(.image_next), <other objects in windows>').click($.facebox.close);

Случилось так, что вы просто сказали все, кроме '.image_next', которое включало бы изображение внутри вашего фейсбокса. Поэтому вместо этого используйте Firebug, чтобы определить, какие другие объекты вам нужно исключить или привязать только к тем объектам, которые вы действительно хотите отменить.

person al3xnull    schedule 05.05.2011