【问题标题】:jQuery Tools alert works once (but only once)jQuery 工具警报工作一次(但只有一次)
【发布时间】: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


【解决方案1】:

定义对话框并将load设置为false(禁用对话框的自动加载):

$('#the_alert').overlay({
    mask: {
        color: '#cccccc',
        loadSpeed: 200,
        opacity: 0.9
    },
    closeOnClick: false,
    load: false
});

然后在显示对话框的处理程序中,调用 load api method:

$("#show").click(function() {
    $("#the_alert").data("overlay").load();
});

(将点击事件分配给 id 为 show 的元素,显示叠加层)

这里的工作示例:http://jsfiddle.net/andrewwhitaker/Vqqe6/

我不相信您能够在特定元素上定义多个叠加层,这会导致您的问题。

【讨论】:

  • 知道了——非常感谢!我不得不对其进行一些调整以使其适合页面的实际情况,但一切都很好。听起来像是对我的回答;谢谢!
  • 差不多一年后,这个答案对某人仍然有用。谢谢,@安德鲁。 +1
  • 我必须为负载设置 true
  • 答案中的“加载 api 方法”链接已失效 - 404 Not Found |道歉! |我们找不到您要查找的内容。
猜你喜欢
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多