jQuery Overlay:关闭当前的Overlay并打开另一个
jQuery Overlay: Closing current overlay and opening another?
请查看beta.gulfdine.com。您将看到一个"登录"链接。点击它会启动一个jQuery覆盖。
现在点击"为什么加入?"这将启动另一个覆盖层,其中有一个"立即注册"链接。点击它会打开之前的叠加。
现在问题来了。你会注意到,这两个叠加都有"曝光"选项,显示他们与屏幕的其余部分变暗。当两者都独立打开时,这可以正常工作。然而,当我从"为什么加入?"中启动注册叠加时,曝光效果没有显示。此外,点击覆盖层外也不起作用。
代码如下:
/*Overlays*/
var whyJoinOverlay = $("a.whyJoin[rel]").overlay({ expose: '#000', top: 'center', api: true });
var loginLinks = $("a.loginLinks[rel]").overlay({ expose: '#000', top: 'center', api: true });
$("a.callToAction").click(function (e) {
e.preventDefault();
whyJoinOverlay.close();
loginLinks.load();
});
这是因为我做错了什么,还是这是一个bug在jQuery覆盖?
问题是fadeOut
动画不被允许在新模态加载之前完成。我在文档中找了一下,找不到将回调传递给close()
函数的方法,但是您需要找到一些方法来做到这一点。当这种情况发生时,您的代码将看起来像这样:
$("a.callToAction").click(function (e) {
e.preventDefault();
whyJoinOverlay.close(function()
{
loginLinks.load();
});
});
确保close
函数在load
函数开始之前完成,即确保动作是同步的。就像我说的那样,你可能需要创造性地将回调传递给close
函数:它可能需要一个JSON名称说明符,或者它可能需要提前定义。如果您找不到这样做的方法,这是库的限制,您可以添加或找出一种方法来替换
Jimmy对错误原因的判断似乎是正确的。
事实证明,有一个内置的值需要修改,以使这项工作,我发现在jQuery工具论坛:http://flowplayer.org/tools/forum/40/41903
修改后的代码如下所示:var whyJoinOverlay = $("a.whyJoin[rel]").overlay({
top: 'center',
api: true,
mask: {
color: "#000",
loadSpeed: 0,
closeSpeed:0,//this is REQUIRED for the next overlay to work
opacity: 0.9
}
});
var loginLinks = $("a.loginLinks[rel]").overlay({ expose: '#000', top: 'center', api: true });
/* No longer any need for the $("a.callToAction").click() function */
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 无法从jquery Mobile导航栏重定向到另一个页面
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 导航到特定事件的另一个变量页面
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 如何在react js中将值从一个组件发送到另一个组件
- 按我自己的类克隆另一个元素的内容和顺序
- 在另一个函数中使用变量this
- 如何在react js中从一个页面导航到另一个页面
- 在另一个函数成功结束后调用该函数
- jQuery Overlay:关闭当前的Overlay并打开另一个