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