【问题标题】:ASP.NET loses jquery bindings after postback回发后 ASP.NET 丢失 jquery 绑定
【发布时间】:2010-12-15 06:02:30
【问题描述】:

我有 asp.net 页面,我在标记 js 文件中绑定。 Js 文件主要通过类名使用一组函数。 在这些函数中,我使用 WCF 从服务器获取数据,并且只更改控制状态和数据。 也在我做回发的页面上。一切都很好,但之后我的 jquery 函数不起作用。回发后,我只在网格中添加一行,不涉及 jquery 逻辑。

但是当我从

改变我的逻辑时

$(文档).ready(函数()

$jq("#ctrlID").change(function () {    }); )

$(文档).ready(函数()

$jq("#ctrlID").live('change', function () {    }); )

一切正常。

我很困惑。这是什么?我不添加控件

【问题讨论】:

    标签: asp.net jquery


    【解决方案1】:

    $(document).ready() 在 DOM 就绪时执行。但是,它不会在 ajax 异步回发时触发,因此您的所有绑定都将丢失。 Live() 本质上使您的绑定始终处于“活动状态”。另一种解决方案是使用 pageLoad() 客户端事件,它是 ASP.NET 客户端框架的一部分。此方法将在正常和部分回发时触发,您可以像往常一样将事件绑定在那里。

    function pageLoad(sender, args)
    {
    // Your event bindings here
    }
    

    您还可以使用args.get_isPartialLoad() 来确定您是处于回发还是异步回发中。

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 2011-01-25
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多