Lee*_*one 4 javascript jquery fancybox
我有2个fancyboxes,我试图从第一个打开第二个(通过按钮或关闭第一个)...
<div id="firstFancybox" style="display:none">
<p>I'm the first Fancybox!</p>
<a id="fancyboxButton" href="#secondFancybox">Close first Fancybox</a>
</div>
<a id="hiddenLink" href="#firstFancybox"></a>
<div id="secondFancybox" style="display:none">
<p>I'm the second Fancybox!</p>
</div>
Run Code Online (Sandbox Code Playgroud)
第一个Fancybox正在页面加载时激活..
$(document).ready(function() {
$("a#hiddenLink").fancybox({ 'hideOnContentClick': false, 'frameWidth': 300, 'frameHeight': 300 }).trigger('click');
$("a#fancyboxButton").fancybox();
});
Run Code Online (Sandbox Code Playgroud)
我希望能够在第一个关闭时打开第二个fancybox.或者......单击第一个按钮打开第二个.
这是如何实现的?我对运动的恐惧并不紧张.
- 李
更新:
使用callbackOnClose允许我做一些简单的事情,比如alert('hi'),但我还没有设法打开另一个Fancybox.
$(document).ready(function() {
$("a#hiddenLink").fancybox({ 'hideOnContentClick': false, 'frameWidth': 300, 'frameHeight': 300,
callbackOnClose: function() { alert('hi'); }
}).trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
好吧,我终于开始工作了(我第一次遇到fancybox).它似乎callbackOnClose是在关闭时调用,而不是在关闭后调用.因此,第二个fancybox在第一个完全关闭之后才能弹出.
诀窍?使用计时器延迟打开第二个.这绝不是完美的答案,如果定时器设置得太短会表现得很奇怪,如果设置得太长则不理想.100ms适合我.这是代码.
脚本:
$(document).ready(function() {
$("a#hiddenLink").fancybox({ 'hideOnContentClick': false, 'frameWidth': 300, 'frameHeight': 300,
callbackOnClose: function() { window.setTimeout('open2()',100); }
}).trigger('click');
});
function open2(){
$("a#fancyboxButton").fancybox().trigger('click');
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="firstFancybox" style="display:none">
<p>I'm the first Fancybox!</p>
<a href="#" onclick="open2();">Close first Fancybox</a>
</div>
<a id="hiddenLink" href="#firstFancybox"><!--for first fancy box--></a>
<a id="fancyboxButton" href="#secondFancybox"><!--for second fancy box--></a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23459 次 |
| 最近记录: |