【问题标题】:Div doesn't fade out in update panelDiv 不会在更新面板中淡出
【发布时间】:2012-12-19 11:08:34
【问题描述】:

我正在使用更新面板,在其中我有一个 div,当转发器的项目命令被触发时,我会在其中显示一条消息。 开始时 div 是可见的 false。

 <div id="divCommentsMsg" class="form_popup_Msg" visible="false" runat="server">
        <asp:Label ID="lblCommentsMsg" runat="server"></asp:Label>
  </div>

它在中继器的 ItemCommand 上可见。为了淡出它,我使用:

 $("#ctl00_ContentPlaceHolder1_ctrlComments_divCommentsMsg").delay(3000).fadeOut(100);

div 变得可见但不会淡出。我该怎么办?

更新 我正在 IE 9 中尝试它

【问题讨论】:

  • 如何调用fadeOut() 函数?通过某种按钮单击,或者在添加元素时?
  • 很明显的问题是,你得到正确的DIV ID了吗?

标签: c# javascript jquery asp.net updatepanel


【解决方案1】:

试试这个:

$("#'<%=divCommentsMsg.ClientID %>'").delay(3000).fadeOut(100);

使用ClientID 获取客户端元素的“真实”id

或者使用 Ends with 选择器:

$("[id$='divCommentsMsg']").delay(3000).fadeOut(100);

【讨论】:

  • 有时会产生渲染问题,最好使用$("#'&lt;%=divCommentsMsg.ClientID %&gt;'").delay(3000).fadeIn(0).fadeOut(100);
  • 我也建议使用style="display: none;" 而不是visible="false"
  • @adripanico,我看不到 fadeIn 可见元素的意义......你为什么要这样做?如果元素是可见的,它不会做任何事情,如果不是,你想淡出什么...?
  • 正如我所说,这是为了避免由于使用这个jQuery函数而引入的渲染问题。
  • 我在 IE 9 中尝试。它说不支持delay
【解决方案2】:

获取服务器控件的ClientID

$("#'<%=divCommentsMsg.ClientID %>'").delay(3000).fadeOut(100);

【讨论】:

  • ?你为什么要重复@gdoron 所说的话?
  • 我在 IE 9 中尝试。它说不支持delay
  • delay() 方法是在 1.4 中引入的。如果您有 1.4 或更高版本,delay() 应该可以工作。可能是脚本没有正确加载..
  • 请在您的 IE 中检查。我已经加载了 jQuery 1.4...jsfiddle.net/ABkBa/1
【解决方案3】:

我在这个链接找到了一个完美的解决我的问题的方法:

jQuery $(document).ready and UpdatePanels?

这是因为更新面板会在每次更新后重新绑定 jquery 对象。

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2015-09-07
    相关资源
    最近更新 更多