【问题标题】:How do I prevent a javascript from reloading every time a button is click?如何防止每次单击按钮时重新加载 javascript?
【发布时间】:2012-02-17 22:37:34
【问题描述】:

我有这个脚本,当页面在 ASP.NET 中加载时,它会向用户显示一条消息,我的问题是每次用户单击任何导致我相信 PostBack 的按钮都会重新加载相同的消息。我只想在首页加载时显示这个。任何帮助将不胜感激。

$('.block .message').hide().append('<span class="close" title="Dismiss"></span>').fadeIn('slow');
$('.block .message .close').hover(
    function () { $(this).addClass('hover'); },
    function () { $(this).removeClass('hover'); }
);

$('.block .message .close').click(function () {
    $(this).parent().fadeOut('slow', function () { $(this).remove(); });
});

这是我的 HTML 代码,

<div class="message info">The first input field would allow you to provide the From Date, PO, Shipment or Single Date.</div>

【问题讨论】:

  • 当然不需要那个悬停代码。只需使用 :hover 伪类而不是 .hover 类...
  • 如果它已经可见,你只需要不显示它。
  • 那么,问题是“我如何让 ASP.NET 在每次单击按钮时不重新加载整个页面?”或“如何让我的 JS 检测初始加载和回发加载之间的差异?”

标签: javascript jquery asp.net .net html


【解决方案1】:

添加 runat=server 和一个 id:

<div class="message info" runat="server" id="divmessage" >

在您的 Page_Load 中添加代码以使其仅在 !IsPostback 时可见

protected void Page_Load(object sender, EventArgs e)
{
   divmessage.visible = !IsPostBack;
}

【讨论】:

    【解决方案2】:

    您可以将其添加到您的页面:

    <script>
        function isPostBack () {
          return <%= Page.IsPostBack %>;
        }
    </script>
    

    现在:

    if ( !isPostBack() ) {
        //show message
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2012-12-09
      • 2022-01-26
      • 2019-06-24
      • 2023-03-13
      相关资源
      最近更新 更多