如何以编程方式触发带有内联 div 的 fancybox?
我想让当有人尝试提交表单时出现一个 fancybox。所以我得到了这个:
$('#login-form').submit(function(e) {
$.fancybox({
content: '<h2>Hello Fancybox</h2>',
modal: true
});
return false;
});
效果很好,但我宁愿使用我的 div 而不是尝试指定内容字符串中的所有 HTML。我可以用它来弹出它吗
<div style="display:none" id="access-policy">
blah blah blah
</div>
?
I want to make a fancybox appear when someone tries to submit a form. So I've got this:
$('#login-form').submit(function(e) {
$.fancybox({
content: '<h2>Hello Fancybox</h2>',
modal: true
});
return false;
});
Works good, but I'd rather use my div than trying to specify all the HTML in the content string. Can I make it popup with this
<div style="display:none" id="access-policy">
blah blah blah
</div>
Instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
对于 FancyBox v3 或更高版本,请参阅此答案
对于旧版本:
您需要在
href
属性中设置 div ID。如果您在content
属性中使用$('#access-policy').show()
,那么您第二次打开此 fancybox 时将不会显示任何内容。HTML 中也必须是:
:)
For FancyBox v3 or later see this answer
For old versions:
You need to set in
href
property the div ID. If you use$('#access-policy').show()
incontent
property the second time you open this fancybox will show nothing.Also in the HTML has to be:
:)
其他答案需要更新,
因为我正在使用已接受的答案的代码,并且挠了半个小时。
在最新的 FancyBox 3 中,他们更改了一些选项名称以及如何使用一些方法。
关于如何打开内联元素的旧版本:
需要更改为
注意 open 方法和 href->src 更改。
如果没有 open,您将得到一个 fancybox is not a function 错误。如果没有“src”,您将收到无法加载请求的内容的弹出窗口。
希望这可以帮助某人避免我同样的错误,我们确实需要遵循此文档。要想过时就更难了。
The other answers need to be updated
because I was using the accepted answer's code and was scratching my head for half an hour.
In the most recent FancyBox 3, they have changed some option names and how to use some methods.
The older version on how to open an inline element:
needs to change to
Notice the open method and the href->src change.
Without the open you will get a fancybox is not a function error. Without "src" you will get a requested content cannot be loaded popup.
Hope this help someone to avoid my same mistakes and we do need to FOLLOW THE DOCUMENTATION on this one. That's much harder to be outdated.
你可以这样做:
you can do:
没关系。
content
可以是 jquery 对象:但是
div
必须包裹在隐藏的 div 中,否则什么也不会出现;它不会更改显示属性。
Nevermind.
content
can be a jquery object:But the
div
has to be wrapped in a hidden div,Otherwise nothing will appear; it doesn't change the display property.
内容是“任何 HTML”,因此从 Div 获取 HTML 并将其提供给内容
Content is "any HTML", so get the HTML from the Div and give it to content
这演示了如何在不需要
链接元素的情况下使用 fancybox。
内联 (1.3.4):
内联 (2.1.5):
Iframe:
This demonstrates how to use fancybox without requiring the
<a href>
link element.Inline (1.3.4):
Inline (2.1.5):
Iframe: