bxslider上具有bx-clone类的图像在灯箱中没有打开

时间:2015-01-16 09:52:01

标签: jquery fancybox bxslider

我已经建立了一个带有bxlider的滑块,图片必须用lightbox打开。我正在使用fancybox。当转向具有bx-clone类的图像时,它们没有在浏览器中直接打开的灯箱中打开。这是我的bxslider代码

jQuery('.inner_gallery').bxSlider({
            slideWidth: 185,
            minSlides: 2,
            maxSlides: 3,
            moveSlides: 1,
           pager : false, 
           nextSelector: '#news_gallery_slider-next-think',
             prevSelector: '#news_gallery_slider-prev-think',  
             nextText: '',
              prevText: '' ,
              onSliderLoad: function(){
                    // Event fires when you click on a clone slide
                    $('.bx-clone a').click(function(event){
                        // Prevent click event for clone slides
                       // event.preventDefault();
                        // Get the href attribute (url) of the clone slide image
                        urlOfImage = $(this).attr('href');
                        // Select the real slide by looking for a matching href attribute
                        realSlide = $(".bxslider li").not(".bx-clone").has('a[href="'+urlOfImage+'"]');
                        // Get the index of the real slide
                        realSlideIndex = $('.bxslider li').not(".bx-clone").index(realSlide);
                        // Tell magnific-popup to open the slide at the index
                        $(this).parents('.bxslider').fancybox(); 
                    });
                },
            slideMargin: 10       
          });

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

我没有用bxslider解决这个问题,发现一个很好的响应另一个滑块用它我没有这个问题与灯箱。

我使用的是Jcaousellite。这是你可以从这里下载的Jcarousellite files。代码是这样的jQuery(".inner_gallery").jCarouselLite({ btnNext: "#news_gallery_slider-next-think", btnPrev: "#news_gallery_slider-prev-think", visible: 5, auto: 50000, speed: 1000 });

答案 1 :(得分:0)

使用Jquery .on()

这将绑定所有dom元素上的事件,即使稍后加载了dom元素。

$('a').on('.elements_always_there', 'click', function(){
    urlOfImage = $(this).attr('href'); 
});

答案 2 :(得分:0)

<!DOCTYPE html>
<html>
<head>
<style>
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
padding-top: 100px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content */
.modal-content {
background-color: #fefefe;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}

/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}

.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
</style>
</head>
<body>

<h2>Modal Example</h2>

<!-- Trigger/Open The Modal -->
<button id="myBtn">Open Modal</button>

<!-- The Modal -->
<div id="myModal" class="modal">

<!-- Modal content -->
<div class="modal-content">
<span class="close">&times;</span>
<p>Some text in the Modal..</p>
</div>

</div>

<script>
// Get the modal
var modal = document.getElementById('myModal');

// Get the button that opens the modal
var btn = document.getElementById("myBtn");

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks the button, open the modal 
btn.onclick = function() {
modal.style.display = "block";
}

// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
    modal.style.display = "none";
}
}
</script>

</body>
</html>