我要运行与的fancybox触发点击在我的网站,我发现的问题是,用这种方法,如果你点击看中的箱内元件,花哨的框将关闭和再次出现(闪烁)。
我想让fancybox防止当我单击框内的元素时以及单击这些元素时闪烁,我不想看到任何更改,仅此而已:)
我为此问题创建了演示
<div id="a1">
<p>Click on the box</p>
<div class="r"></div>
</div>
$(document).ready(function() {
$('#a1').fancybox({
afterClose: function() {
console.log('closed :( ');
}
}).click();// or .trigger('click');
});
任何的想法?
代码的问题在于,您正在使选择器#a1
同时充当:fancybox的触发器和目标,因此,对其本身的任何单击都将一遍又一遍地触发fancybox。
您需要创建另一个针对#a1
元素的选择器(触发器),例如
<a class="fancybox" href="#a1">triggers fancybox</a>
<div id="a1">
<p>Click on the box</p>
<div class="r"></div>
</div>
如果您不希望该元素.fancybox
可见,则只需添加一个display:none
属性
然后你的js
$(document).ready(function () {
$('.fancybox').fancybox({
afterClose: function () {
console.log('closed :( ');
}
}).trigger('click');
});
参见JSFIDDLE
编辑:看着您的示例JSFIDDLE,事情本来可以简单得多。
只有这个HTML
<div id="a1">
<p>Click on the box</p>
<div class="r"></div>
</div>
您可以使用此代码
$(document).ready(function () {
$.fancybox({
href: "#a1"
});
});
不需要click
的地方。
看到您更新的JSFIDDLE
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句