【问题标题】:How do I hide all previous message boxes before showing the target one如何在显示目标之前隐藏所有以前的消息框
【发布时间】:2012-11-12 21:12:54
【问题描述】:

我使用the Pines Notify JQuery Plugin 向用户显示消息框以显示一些警报。

我的问题分为两部分:

在我显示一条消息之前,我首先尝试通过以下方法删除所有以前的消息:

protected void HideStatus() {
    ScriptManager hs = ScriptManager.GetCurrent(Page);
    string script = @"$.pnotify_remove_all();";
    ScriptManager.RegisterStartupScript(Page, this.GetType(), "Sticky Notice", script, true);
}

...但这不起作用,我不知道为什么。

我用来显示我的消息的方法如下:

protected void ShowStatus(string message, string title, string type, string hide) {
    string script = @"
        $.pnotify({
            pnotify_title:'" + title + "',
            pnotify_text: '" + message + "',
            pnotify_type: '" + type + "',
            pnotify_opacity: .9,
            pnotify_hide: '" + hide + "'
        });";

    ScriptManager.RegisterStartupScript(Page, this.GetType(), "Sticky Notice", script, true);
}

第二个问题是,我不知道消息应该出现在哪里(例如,作为用户体验问题,“通知出现的最佳位置是什么”)。

【问题讨论】:

  • 您是否尝试过使用 ScriptManager.RegisterClientScriptBlock 方法?
  • 当你调用hideStatus时你会得到什么样的javascript错误?
  • 关于用户体验 (ux.stackexchange.com) 或程序员的问题的第二部分可能更好。
  • 当我调用这个方法然后HideStatus()然后我调用ShowStatus()时没有错误出现。
  • @w4ymo:是的,我愿意,但仍然是同样的问题。

标签: javascript jquery asp.net css ajax


【解决方案1】:

运行$.pnotify_remove_all(); 应该可以工作。 demo page 上甚至还有一个示例(删除所有通知)...

【讨论】:

  • 我打赌作者知道$.pnotify_remove_all(); 的存在,因为它在他的代码中使用了它。
【解决方案2】:

尝试使用以下内容:

$(window).data("pnotify", []);

对我来说效果很好。

【讨论】:

    【解决方案3】:

    如果这两个脚本在同一个类中,第二个运行的脚本将覆盖原来的,因为键 "Sticky Notice" 对于两个 RegisterStartupScript() 调用是相同的。据我所知,它们必须是独一无二的。改变一个或两个,它们应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多