我将Fancybox插件用于模态窗口。 似乎无论我使用什么选项,当用户在fancybox模态窗口(灰色区域)之外单击时,都无法阻止fancybox模态窗口关闭。
有没有一种方法可以强迫用户单击X或我触发关闭事件的按钮? 这似乎应该很简单,所以我希望我只是读错了例子。
我已经尝试过
jQuery(".lightbox").fancybox({
helpers : {
overlay : {
speedIn : 0,
speedOut : 300,
opacity : 0.8,
css : {
cursor : 'default'
},
closeClick: false
}
},
});
<script type="text/javascript">
$(document).ready(function() {
$("#your_link").fancybox({
'hideOnOverlayClick':false,
'hideOnContentClick':false
});
});
我使用的是fancybox 1.3.1,如果要强制用户仅通过单击按钮来关闭模式框,则可以在配置中指定:
<script type="text/javascript">
$(document).ready(function() {
$("#your_link").fancybox({
'hideOnOverlayClick':false,
'hideOnContentClick':false
});
});
对于此问题,请尝试这种方式
$("YourElement").fancybox({
helpers: {
overlay: { closeClick: false } //Disable click outside event
}
希望这可以帮助。
如果您使用的是Fancybox 1.2.6(就像我在一个项目中一样),我会发现选项hideOnOverlayClick。您可以将其设置为false(例如hideOnOverlayClick:false)。
我在探索根据Scott Dowding的建议givn修改代码时找到了这个选项。
没有选择的余地。您将不得不更改源代码。
在jquery.fancybox-1.2.1.js中,您需要在_finish方法中注释(或删除)第341行:
//$("#fancy_overlay, #fancy_close").bind("click", $.fn.fancybox.close);
以上都不适合我,所以我只是为fancybox的最新版本写了一些简单的文章。
function load(parameters) {
$('.fancybox-outer').after('');
}
$(document).ready(function () {
$(".various").fancybox({
modal: true,
afterLoad: load
});
});
希望这可以帮助 :)
我遇到了同样的"问题"。这对我有用: (短码网-duanma.net)
$("#fancybox-overlay").unbind();
在函数内将
$(".video").click(function() {
$.fancybox({
width: 640,
height: 385,
helpers: {
overlay: {
closeClick: false
}
}
});
return false;
});
@Gabriel为此问题提供的
$('.fancybox').fancybox({'afterLoad' : function() {
setTimeout(function() { $("#fancybox-overlay").unbind(); }, 400);}
});
400ms的延迟使它为我工作。它的工作时间为300毫秒,但我不想冒险。
您可以通过应用以下设置来阻止花式框关闭
'showCloseButton'=>false, // hide close button from fancybox
'hideOnOverlayClick'=>false, // outside of fancybox click disabled
'enableEscapeButton'=>false, // disable close on escape key press
从以下链接获取fancybox设置
http://www.fancybox.net/api
只需将以下行添加到函数中,就不必在jquery.fancybox-1.2.6.js中进行任何更改
callbackOnStart : function() {$("#fancy_overlay").bind("click","null");},
只需使用以下代码:
$(document).ready(function() {
$("a#Mypopup").fancybox({
"hideOnOverlayClick" : false, // prevents closing clicking OUTSIE fancybox
"hideOnContentClick" : false, // prevents closing clicking INSIDE fancybox
"enableEscapeButton" : false // prevents closing pressing ESCAPE key
});
$("a#Mypopup").trigger('click');
});
<img alt="Mypopup" src="images/popup.png" />
我必须将以上所有答案结合使用,因为它们都包含错误。当然,不需要编辑源代码。
就我而言,我想禁用重叠式点击关闭框,因为我有一系列问题会按顺序显示在fancybox中,所以我不希望用户因不小心点击重叠式广告而失去进度,但我想将该功能保留在页面上的其他位置。
使用它禁用它:
$(".fancybox-overlay").unbind();
使用它重新启用它:
$(".fancybox-overlay").bind("click", $.fancybox.close);
您可以将叠加层上的默认closeClick设置为false。在2.1.5版中为我工作。
$.fancybox.helpers.overlay.defaults.closeClick=false;
以上就是短码网小编为大家整理的《javascript jquery fancybox-防止关闭fancybox外部的单击》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《javascript jquery fancybox-防止关闭fancybox外部的单击》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/f56dc683835.html