我已将按钮添加到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()时,当前图片消失,只显示叠加,除了刷新页面外我什么也做不了。
我怎样才能做到这一点?
答案 0 :(得分:1)
我的解决方案。不是最优雅的方式,但它对我有用。
$('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();
}
});
用几句话说:
如果您找到更好的解决方案,请告诉我。
答案 1 :(得分:0)
如果cboxLinks
是jQuery对象的集合,请尝试使用slice()
代替splice()
:
cboxLinks.slice(0,1);