如何防止Jquery colorbox组在单击或鼠标上启动?

时间:2013-12-13 20:30:35

标签: javascript jquery colorbox

我正在使用Colorbox,并且所有标准功能都可以使用。此问题超出了常规颜色框使用方案。

我需要能够在点击时拦截颜色框启动并在允许颜色框显示之前评估条件。所以我有一组图像(使用rel),当点击任何图像时,我希望能够运行我自己的代码来检查一些变量,并决定是否可以允许颜色框弹出窗口显示。如果未设置条件,我想取消弹出窗口。我没有看到在网上任何样本中进行拦截/代码注入的简单方法,尽管我可能错过了一些东西。

1 个答案:

答案 0 :(得分:3)

关键是堆叠处理程序并使用较早的处理程序将对colorbox的调用短路。这应该有效,但我没有测试过:

首先在颜色框声明的前面注册一个点击处理程序,如下所示:

$('a.gallery')
  .on( 'click', onClickGallery )
  .colorbox({rel:'gal'});

如果不满足您的条件,请立即停止传播:

onClickGallery = function ( event ) {
  var is_allowed = checkIsAllowed();
  if ( ! is_allowed ) { 
    event.stopImmediatePropagation();
    event.preventDefault();
    return false;
  }
  return true;
};

我一直在制作这种东西。祝你好运!