【发布时间】:2010-12-31 03:48:41
【问题描述】:
我正在尝试使用 jQuery 工具构建一个简单的警报机制——响应一些 Javascript 代码,弹出一个带有消息和 OK 按钮的叠加层,单击该按钮会使叠加层消失。微不足道,或者应该是。我一直在盲目地关注http://flowplayer.org/tools/demos/overlay/trigger.html,并且在第一次调用它时有一些可以正常工作的东西,但只有那一次。如果我重复应该暴露覆盖层的 JS 操作,它不会。
我的内容/DIV:
<div class='modal' id='the_alert'>
<div id='modal_content' class='modal_content'>
<h2>hi there</h2>
this is the body
<p>
<button class='close'>OK</button>
</p>
</div>
<div id='modal_background' class='modal_background'><img src='/images/overlay/f9f9f9-180.png' class='stretch' alt='' /></div>
</div>
和 Javascript:
function showOverlayDialog() {
$('#the_alert').overlay({
mask: {color: '#cccccc', loadSpeed: 200, opacity: 0.9},
closeOnClick: false,
load: true
});
}
正如我所说:当第一次调用 showOverlayDialog() 时,叠加层会按原样显示,并在单击“确定”按钮时消失。但是,如果我让 showOverlayDialog() 再次运行,而不重新加载页面,则什么也不会发生。如果我重新加载页面,那么模式会重复——第一次调用会显示覆盖,但第二次不会。
我显然遗漏了一些东西——有什么建议吗?谢谢!
【问题讨论】:
-
您在
Close按钮上附加了什么?乍一看,您可能正在操纵 HTML 来隐藏覆盖而不是使用 JQuery - 因此 JQuery 认为覆盖已经打开并且不会重新显示它。这可能是不正确的分析,但如果您可以发布完整的源代码,我们可能会提供进一步的帮助 -
我没有在关闭按钮上附加任何东西。我对 jQuery 工具的(有限)理解是,将 OK 按钮分配给 class=close 会使 jQuery 工具代码中自动发生某些事情,从而导致覆盖消失。无论如何,我没有任何其他 jQuery 或 javascript 处理程序来处理结构。
标签: jquery overlay jquery-tools