[英]Remove images from Colorbox dynamically, while Colorbox is open
我已经将按钮添加到了colorbox,并将单击事件绑定到它们,这部分正在工作。 其中一个按钮应从Colorbox阵列中删除当前显示的图像,如果有,则前进到下一个。
到目前为止,我已经尝试过:
1)
$(document).ready( function(){
cboxLinks = $('a.colorbox').colorbox(cboxOpts);
$('body').on('click', 'a.remove-from-favorites', function(){
// 'a.remove-from-favorites' is appended to colorbox div.
cboxLinks.splice(0,1); // remove first element from cboxLinks collection.
$.colorbox.next(); // fails
})
}
2)
$(document).ready( function(){
cboxLinks = $('a.colorbox').colorbox(cboxOpts);
$('body').on('click', 'a.remove-from-favorites', function(){
// 'a.remove-from-favorites' is appended to colorbox div.
$('a.colorbox#id').remove(); // remove element from DOM.
$.colorbox.next(); // fails
})
}
当我调用$ .colorbox.next()时,当前图片消失,仅显示覆盖,并且除了刷新页面外我什么也不能做。
我该如何实现?
我的解决方案。 不是最优雅的方式,但对我有用。
$('body').on('click', 'a.remove-from-favorites', function(){
// 'a.remove-from-favorites' is appended to colorbox div.
toremove = $('a.colorbox#id');
target = ( toremove.next().length ) ? toremove.next() : ( toremove.prev().length )? toremove.prev() : false;
toremove.remove();
if (target) {
target.find('a.ims-colorbox').trigger('click');
} else {
$.colorbox.close();
}
});
简而言之:
如果您找到更好的解决方案,请告诉我。
如果cboxLinks
是jQuery对象的集合,请尝试使用slice()
而不是splice()
:
cboxLinks.slice(0,1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.