在“颜色盒”处于打开状态时,动态地从“颜色框”中删除图像
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();
}
});
简而言之:
- 确定下一个要显示的图片是否剩余
- 从DOM中删除指向当前图片的链接
- 在下一张图片的链接上触发"点击"事件,如果没有图片,则关闭颜色框
如果你找到更好的解决方案,请告诉我。
如果cboxLinks
是jQuery对象的集合,请尝试使用slice()
而不是splice()
:
cboxLinks.slice(0,1);
相关文章:
- HTML-从mysql生成的选择框中的一个选项更改文本区域的颜色
- 如何在提交后关闭颜色框窗口,并刷新父页面上的图像
- 如何为每个选框使用不同的背景颜色
- 在模式框打开之前更改 SVG 元素的颜色,并在框打开时保持该颜色
- 如何强制颜色框始终以相同的边框大小打开,而与浏览器大小无关
- 使用 html 中的复选框切换表格上的颜色
- 如何将字体颜色或背景颜色设置为javascript confim框
- 在文本框中键入时使用jQuery更改图标的颜色
- HTML中的颜色选择器对话框
- 手动配置值,并在JavaScript中更改框(圆)的颜色
- AngularJs设置背景颜色/颜色的动画
- 使用jquery更改白色框的颜色
- 设置表单上文本框的边框颜色
- 在内联颜色框中加载mediaelementjs,在关闭时暂停视频
- 是否可以添加图像作为徽标颜色框
- 如何将复选框(tickbox)的颜色从白色更改为黑色
- IE错误,视频加载在颜色框中
- 更改聚焦时的标签背景颜色复选框
- 将颜色框中的选择传递给父对象
- 引导颜色选择器,如何在下拉列表中设置颜色值框