如果满足条件,jQuery将打开fancybox

如果满足条件,jQuery将打开fancybox,jquery,iframe,fancybox,Jquery,Iframe,Fancybox,我有一个锚可以打开一个fancybox。我希望fancybox仅在从selectbox进行选择时打开 我发现用preventDefault或returnfalse将click事件绑定到锚点并不能阻止fancybox打开。 我确实找到了阻止fancybox打开的方法。现在我有: HTML 这一切都可以正常工作,只是如果满足条件,现在fancybox将以默认维度打开,并且不会像没有jQuery条件时那样作为iframe打开。在iframe中打开fancybox之前,是否有方法首先检查条件?您可能需要

我有一个锚可以打开一个fancybox。我希望fancybox仅在从selectbox进行选择时打开

我发现用preventDefault或returnfalse将click事件绑定到锚点并不能阻止fancybox打开。 我确实找到了阻止fancybox打开的方法。现在我有:

HTML


这一切都可以正常工作,只是如果满足条件,现在fancybox将以默认维度打开,并且不会像没有jQuery条件时那样作为iframe打开。在iframe中打开fancybox之前,是否有方法首先检查条件?

您可能需要将
单击事件绑定到
#brasil
选择器(或者绑定到
.bigfancybox
选择器,如果您愿意),而不是绑定到fancybox

然后,在事件发生后验证条件,如果满足条件,则以编程方式启动fancybox,否则不执行任何操作(返回
false
),如:

请参见

注意


fiddle使用fancybox v1.3.4,但代码也可以无缝地用于fancybox v2.x,只需确保为每个版本使用正确的API选项。

好的,这很好。但是,我必须将fancybox选项复制到此函数中,并且不能在fancybox.js中引用我的标准bigfancybox,我使用bigfancybox类调用它,但这是绝对可以接受的。谢谢你,伙计!
<div>
<a id="brasil" href="<?php echo $this->url( array( "module" => "amodule", "controller"  => "acontroller", "action" => "soccer"))?>" class="someclass bigfancybox"><?=$this->translate('soccer')?></a>
</div>
jQuery("#brasil").fancybox({
onStart: function() {
var matchid = jQuery('#match_id').val();
if(matchid == '')
    {
        alert(selectmatchmessage);
        return false;
    }
}
});
jQuery("#brasil").on("click", function () {
    var matchid = jQuery('#match_id').val();
    if (matchid !== '') {
        // condition is NOT empty, so fire fancybox
        jQuery.fancybox({
            // fancybox API options
            href: this.href,
            type: "iframe"
        });
    };
    return false; // prevent default and stop propagation
}); // on click