我在服务器端渲染一个图库(或一张图片),并获取HTML,如下所示:
<ul class='cs-style-3' >
<li>
<figure>
<img height='100px' class='gallery' src='someurl'>
<figcaption>
<div imgtitle='sometitle' class='cgallery' href='someurl'></div>
</figcaption>
</figure>
</li>
</ul>
jQuery:
$(document).ready(function ($) {
$(".cgallery").colorbox({ rel: 'gallery', title: function () { return $(this).attr('imgtitle'); } });
})
HTML是通过ajax调用接收的,并被附加到页面:
$(".ExpGallery").html(data.ExpGalleryHTML)
问题是超文本标记语言是在document.ready之后接收的,点击
<div imgtitle='sometitle' class='cgallery' href='someurl'></div>
Colorbox根本不起作用。当这个HTML在文档准备就绪之前放在页面上时,一切都很好,所以代码也没问题。
如何让colorbox在文档就绪后添加相关的HTML时工作?
发布于 2016-08-17 16:08:27
重新启动colorbox,一旦html被渲染。基本上是在ajax回调函数内部。
$.ajax({
....,
success:function(){
....
$(".ExpGallery").html(data.ExpGalleryHTML)
$(".cgallery").colorbox({
rel: 'gallery',
title: function () {
return $(this).attr('imgtitle');
}
});
}
});
https://stackoverflow.com/questions/39001401
复制