如何防止Jquery colorbox组在单击或鼠标悬停时启动

How can I prevent Jquery colorbox group from launching on click or mouseup?

本文关键字:鼠标 悬停 启动 单击 何防止 Jquery colorbox      更新时间:2023-09-26

我使用的是Colorbox,所有的标准功能都可以工作。这个问题超出了正常的颜色框使用场景。

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

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

首先在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;
};

我一直在生产中做这种事情。祝你好运