Đó là câu hỏi của tôi và đây là mã ví dụ của tôi.Có phải sự kiện Nhấp chuột câm trong Fancybox không?
HTML:
<a class="fancybox" rel="group" href="img1.jpg"> <img src="img1_thumb.jpg"> </a>
<a class="fancybox" rel="group" href="img2.jpg"> <img src="img2_thumb.jpg"> </a>
JS:
var header = '<img id="w" src="logo.gif">';
$('.fancybox').fancybox({
afterLoad: function() {
this.wrap.prepend(header);
}, // afterLoad
}); //fancybox
$('#w').click(function() {console.log('clicked');});
Nếu bạn nhấp vào một hình ảnh thu nhỏ để khởi động Fancybox, afterLoad
sẽ giảm trong tiêu đề, nhưng khi bạn nhấp vào hình ảnh và xem giao diện điều khiển bạn không nhận được gì.
Suy nghĩ? Tôi đang cố gắng sử dụng phương thức $.fancybox.close()
của FancyBox, nhưng nếu tôi không thể kích hoạt sự kiện nhấp chuột, tôi buộc phải sử dụng nội tuyến đó, điều tôi không muốn làm vì lợi ích của việc không sử dụng JS inline.
Vì vậy, tôi sẽ đặt một cái gì đó như '$ ('# w'). On ('click', function() {$. Fancybox.close()})' trong 'afterLoad' chức năng sau khi prepending tiêu đề? –
Điều đó đã làm được! Cám ơn rất nhiều. –
Chỉ cần nghĩ rằng tôi muốn thêm rằng ràng buộc các '$ .fancybox.close()' chức năng trong 'afterLoad' gọi lại không phải là tối ưu. Khi bạn cuộn đến hình ảnh tiếp theo, tiêu đề 'mới' không xử lý sự kiện. Tôi đã sửa nó bằng cách di chuyển trình xử lý nhấp chuột vào một cuộc gọi lại 'afterShow'. –