私は2つの画像を持っており、それぞれがリンクでラップされています。一定時間マウスダウンした場合にカラーボックスが起動しないようにしたい。カラーボックスがマウスアップでのみ起動することに気づきました。
私が試しているのは、タイマーでsetTimeout関数を使用してから、その画像からカラーボックスを削除し、マウスアップでその画像にカラーボックスを「再アタッチ」して、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();)は、すべての要素からカラーボックスを削除します。すべての要素に対して関数を再度呼び出すのではなく、どうすればその画像に「カラーボックスを再アタッチ」できますか(画像がたくさんあるときにそうすると、パフォーマンスに影響しますね)。