#jquery #jquery-plugins #lightbox
#jquery #jquery-плагины #лайтбокс
Вопрос:
Представьте, что HTML выглядит следующим образом:
<a id="tour_gallery_link" href="#">Click Me</a>
<div id="tour_gallery">
<a href="image1.png"><img src="image1.png"></a>
<a href="image2.png"><img src="image2.png"></a>
<a href="image3.png"><img src="image3.png"></a>
</div>
CSS:
#tour_gallery {
visibility: hidden;
}
jQuery:
$(document).ready(function(){
console.debug("Page DOM ready");
$('#tour_gallery_link').click(function() {
console.debug("Clicked the tour gallery link.");
$('#tour_gallery').css({
visibility: 'visible'
}).lightBox();
});
По сути, я хочу, чтобы, когда пользователь нажимает на #tour_gallery_link
, div#tour_gallery
его CSS visibility
менялся на visible
. Тогда для него #tour_gallery a
будет выполнена функция lightBox()
.
Это очень важное различие, lightBox()
должно выполняться для a
ссылок внутри div#tour_gallery
, а не только для #tour_gallery
самого.
Однако div#tour_gallery
это то, что скрыто.
Было бы неплохо, если бы я мог запустить лайтбокс, в то время как div остается скрытым — поэтому, как только они нажимают «Click Me», он автоматически переходит в lightBox (), но я не уверен, возможно ли это.
Я использую jQuery.ЛайтбОкс — http://leandrovieira.com/projects/jquery/lightbox /
Правка 1: После того, как я внес изменения, предложенные Калумом, вот как JSFiddle выглядит на моем экране. Он не запускается в лайтбоксе. Он просто загружает div
справа под кнопкой Click Me.
Ответ №1:
$('#tour_gallery_link').click(function() {
$("#tour_gallery a").lightbox({
fitToScreen: true,
imageClickClose: false
}).parent().css('visibility', 'visible');
$("#tour_gallery a:first").trigger('click');
});
Комментарии:
1. Это также прекращается, как только div становится видимым. Он не выполняется
lightBox()
по какой-либо причине. Мне нужно выполнить два щелчка.2. Просто для ясности, это то, что у меня есть:
$('#tour_gallery_link').click(function() { $('#tour_gallery').css('visibility', 'visible').find('a').lightBox(); });
3. Попробуйте второе утверждение выше.
4. Пробовал …. нет … все еще просто загружает скрытый div и требует другого щелчка для загрузки лайтбокса.
5. Отлично, извините, я не до конца понял вопрос. Вот рабочий вариант: jsfiddle.net/QUKVN/1 Надеюсь, все в порядке! Я также обновил ответ выше 🙂