Colorbox关闭、重新打开并保留事件
Colorbox close, reopen and keep events
我有一个小功能,它在一个颜色框中打开。我希望能够关闭彩盒并重新打开它。但是再次打开彩盒,事件就不再起作用了。
最小示例:
(function() {
var $content = jQuery('<button>Test</button>');
$content.on('click', function(){jQuery.colorbox.close()});
jQuery.colorbox({
width: '90%',
height: '90%',
html: $content
});
var $reopen = jQuery('<button>Reopen</button>');
jQuery(document.body).append($reopen);
$reopen.on("click", function() {
jQuery.colorbox({
width: '90%',
height: '90%',
html: $content
});
});
})()
使用上面的代码,我打开一个颜色框,然后可以使用$content
按钮关闭该框(或执行其他操作)。如果我关闭盒子并用$reopen
按钮重新打开它,$content
上的点击事件将不再工作。
知道如何解决这个问题吗?要测试示例代码,可以使用http://www.jacklmoore.com/colorbox/example1/以包含所需的libsjquery和colorbox。
如果关闭colorbox,问题是删除内容。解决方法是使用inline选项来获得所需效果:
(function() {
var $content = jQuery('<button>Test</button>');
$content.on('click', function(){jQuery.colorbox.close()});
jQuery.colorbox({
width: '90%',
height: '90%',
inline: true,
href: $content
});
$reopen = jQuery('<button>Reopen</button>');
jQuery(document.body).append($reopen);
$reopen.on("click", function() {
jQuery.colorbox({
width: '90%',
height: '90%',
inline: true,
href: $content
});
});
})()
使用inline选项并将节点从html移动到href可以保存事件处理程序,并允许您以后重用该节点。Colorbox用伪<div>
替换$content
,并在调用close()
时切换回来。
相关文章:
- 分派点击事件并保留击键修饰符
- 将Backbone.View重新注入DOM,保留事件而不是创建新事件
- 将作用域绑定到事件处理程序,但保留原始参数
- 将参数传递给函数,同时保留事件处理程序
- 离子事件-支架处于保留/选项卡上父/子问题
- 将参数传递给 jQuery .click WHILE 保留事件参数
- 保留动态创建的下拉列表's在事件窗口.history.back()上选择的值-JavaScript
- 更改URL并保留“更改”事件下拉列表中的值
- 保留当前点击事件jquery
- 使用promise.then时,是否可以保留在单击事件调用堆栈中
- 基于鼠标位置的滚动将点击事件保留在前台
- 交换两个 html 元素并保留其上的事件侦听器
- hammer.js - 如何在不传播“点击”事件的情况下注册“保留”事件
- 如何禁用谷歌分析网页浏览量跟踪,但保留事件跟踪
- Colorbox关闭、重新打开并保留事件
- React-如何与事件处理程序一起使用bind并保留事件对象
- 使用.html()来替换替换元素,有没有一种方法可以保留事件
- 为动态更改的元素保留事件
- 如何在排序后保留事件侦听器
- 如何用jQuery代替HTML,同时保留事件绑定