我有两张图片,每张图片都包含在一个链接中。如果鼠标按下超过一定时间,我想防止彩盒触发。我注意到 colorbox 仅在 mouseup 时触发。
我一直在尝试将 setTimeout 函数与计时器一起使用,然后从该图像中删除颜色框,然后在 mouseup 上将颜色框“重新附加”到该图像,这样如果 setTimeout 没有发生,它可以再次触发。
HTML:
<a class="colorbox" href="..."><img src="..." /></a>
<a class="colorbox" href="..."><img src="..." /></a>
JS:
$('a.colorbox').colorbox();
var timer;
$('a.colorbox').on('mousedown', function(e) {
var this_colorbox = $(this);
timer = setTimeout(function() {
this_colorbox.colorbox.remove();//this doesn't work
}, 1500);
}).on('mouseup', function(e) {
clearTimeout(timer);
});
//"Reattach colorbox"??
这是一个小提琴:http: //jsfiddle.net/mydCn/
我遇到的问题是 $.colorbox.remove(); (或我的尝试 this_colorbox.colorbox.remove();) 从所有元素中删除颜色框。我怎么能“重新附加颜色框”到该图像而不是再次调用每个元素的函数(当有很多图像时这样做会影响性能,不是吗?)?