如何从选择器解除fancybox的绑定

时间:2011-12-29 15:34:20

标签: javascript jquery fancybox

我有一个带有类的锚链接,用于标识要在fancybox上调用的类。 例如:

<a class="group">some code here</a>

Fancybox绑定:

$('.group').fancybox();

如果我想用$('。group')选择的元素取消绑定fancybox,我应该怎么做? 我试过了removeClass('group'),但它没有用。

4 个答案:

答案 0 :(得分:5)

$('.group').unbind('click.fb')

答案 1 :(得分:1)

您可以将链接“nofancybox”添加到链接中,此链接将被忽略

答案 2 :(得分:0)

如果您想在javascript代码中执行此操作,您可以选择锚标记对象并删除该类。

为元素指定id并调用removeClass方法

<a id="noFancy" class="group">some code here</a>

Java脚本

 $(function(){
     $("#noFancy").removeClass("group");

 });

如果您有权访问HTML标记,为什么不将类更改为其他类似但具有相同CSS值的类。那么你不需要执行代码来删除documentready上的类

HTML

<a class="groupNormal">I dont want fancybox</a>

CSS

.groupNormal
{
  // Put the CSS for group class
}

答案 3 :(得分:0)

这个解决方案对我有用,但是从提问者的意愿来看,它并没有解开fancybox。

首先,不要在节点上声明fancybox,而是将节点绑定到click事件:

$(".classOfMiniImage").on("click", window.onImageMiniClicked);

在处理程序中,您可以使用代码检查是否需要显示fancybox的条件,然后使用明确的href引用显示它:

window.onImageMiniClicked = function () {
    if (<your_condition>) {
        $.fancybox({
            'href': <link_to_full_size_image>,
            /* other options below */
            'transitionIn': 'elastic',
            'transitionOut': 'elastic',
            'speedIn': 600,
            'speedOut': 600,
            'overlayShow': true
        });
    }
}

此外,如果您不再需要这些项目上的fancybox,您可以使用另一种方法并手动取消绑定此处理程序:

$(".classOfMiniImage").off("click", window.onImageMiniClicked);

希望它会对某人有所帮助。